home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-09-20 | 77.6 KB | [TEXT/ALFA] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Tue Sep 20 21:50:04 1994, modified Tue Sep 20 21:50:04 1994, creator Alpha editor, type ASCII, 71294 bytes "latex.tcl" , at 0x116fe 8028 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [ALFA] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 6c 61 74 65 78 2e | 74 63 6c 00 00 00 00 00 |..latex.|tcl.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 41 4c 46 | 41 00 00 00 00 00 00 00 |.TEXTALF|A.......|
|00000050| 00 00 00 00 01 16 7e 00 | 00 1f 5c aa a5 41 cc aa |......~.|..\..A..|
|00000060| a5 41 cc 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.A......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 33 5f 00 00 |........|....3_..|
|00000080| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000090| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 0d 23 23 |########|#####.##|
|000000d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000000f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000100| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000110| 23 23 23 23 23 23 23 23 | 23 23 23 0d 23 0d 23 20 |########|###.#.# |
|00000120| 6c 61 74 65 78 2e 74 63 | 6c 2c 20 76 65 72 73 69 |latex.tc|l, versi|
|00000130| 6f 6e 20 32 2e 33 3a 20 | 20 6d 61 63 72 6f 73 20 |on 2.3: | macros |
|00000140| 61 6e 64 20 62 69 6e 64 | 69 6e 67 73 20 66 6f 72 |and bind|ings for|
|00000150| 20 4c 61 54 65 58 20 75 | 73 65 72 73 0d 23 0d 23 | LaTeX u|sers.#.#|
|00000160| 20 2d 2d 20 73 65 65 20 | 22 4c 61 54 65 58 20 48 | -- see |"LaTeX H|
|00000170| 65 6c 70 22 20 61 6e 64 | 20 22 4c 61 54 65 58 20 |elp" and| "LaTeX |
|00000180| 4b 65 79 20 42 69 6e 64 | 69 6e 67 73 22 20 6f 6e |Key Bind|ings" on|
|00000190| 20 74 68 65 20 48 65 6c | 70 20 6d 65 6e 75 0d 23 | the Hel|p menu.#|
|000001a0| 20 2d 2d 20 63 6f 6d 6d | 61 6e 64 20 73 75 6d 6d | -- comm|and summ|
|000001b0| 61 72 69 65 73 20 73 75 | 69 74 61 62 6c 65 20 66 |aries su|itable f|
|000001c0| 6f 72 20 70 72 69 6e 74 | 69 6e 67 20 28 22 6c 61 |or print|ing ("la|
|000001d0| 74 65 78 5f 63 6f 6d 6d | 61 6e 64 73 2e 74 65 78 |tex_comm|ands.tex|
|000001e0| 22 20 0d 23 20 20 20 20 | 61 6e 64 20 22 6c 61 74 |" .# |and "lat|
|000001f0| 65 78 5f 6b 65 79 73 2e | 74 65 78 22 29 20 77 69 |ex_keys.|tex") wi|
|00000200| 6c 6c 20 62 65 20 66 6f | 75 6e 64 20 69 6e 20 74 |ll be fo|und in t|
|00000210| 68 65 20 4c 61 54 65 58 | 20 66 6f 6c 64 65 72 2e |he LaTeX| folder.|
|00000220| 0d 23 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |.#.#####|########|
|00000230| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000240| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000250| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000260| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000270| 0d 23 0d 23 20 76 65 72 | 73 69 6f 6e 20 31 2e 31 |.#.# ver|sion 1.1|
|00000280| 20 61 6e 64 20 31 2e 32 | 20 28 31 31 2f 31 30 2f | and 1.2| (11/10/|
|00000290| 39 32 29 20 62 79 20 52 | 69 63 68 61 72 64 20 54 |92) by R|ichard T|
|000002a0| 2e 20 41 75 73 74 69 6e | 20 28 61 75 73 74 69 6e |. Austin| (austin|
|000002b0| 40 65 65 63 73 2e 75 6d | 69 63 68 2e 65 64 75 29 |@eecs.um|ich.edu)|
|000002c0| 0d 23 20 76 65 72 73 69 | 6f 6e 20 32 2e 30 2d 2d |.# versi|on 2.0--|
|000002d0| 32 2e 32 20 61 6e 64 20 | 32 2e 33 20 28 39 2f 31 |2.2 and |2.3 (9/1|
|000002e0| 35 2f 39 34 29 20 62 79 | 20 54 6f 6d 20 53 63 61 |5/94) by| Tom Sca|
|000002f0| 76 6f 20 28 74 72 73 63 | 61 76 6f 40 73 79 72 2e |vo (trsc|avo@syr.|
|00000300| 65 64 75 29 0d 23 0d 23 | 20 49 66 20 79 6f 75 20 |edu).#.#| If you |
|00000310| 6d 61 6b 65 20 69 6d 70 | 72 6f 76 65 6d 65 6e 74 |make imp|rovement|
|00000320| 73 20 74 6f 20 74 68 69 | 73 20 66 69 6c 65 2c 20 |s to thi|s file, |
|00000330| 70 6c 65 61 73 65 20 73 | 68 61 72 65 20 74 68 65 |please s|hare the|
|00000340| 6d 21 0d 23 0d 23 23 23 | 23 23 23 23 23 23 23 23 |m!.#.###|########|
|00000350| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000360| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000370| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000380| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000390| 23 23 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |##.#####|########|
|000003a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000003b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000003c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000003d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000003e0| 0d 0d 0d 23 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...#----|--------|
|000003f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 23 |--------|------.#|
|00000430| 20 41 75 74 6f 6c 6f 61 | 64 20 70 72 6f 63 65 64 | Autoloa|d proced|
|00000440| 75 72 65 3a 0d 23 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ure:.#--|--------|
|00000450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000490| 0d 0d 70 72 6f 63 20 64 | 75 6d 6d 79 54 65 58 20 |..proc d|ummyTeX |
|000004a0| 7b 7d 20 7b 7d 0d 0d 23 | 2d 2d 2d 2d 2d 2d 2d 2d |{} {}..#|--------|
|000004b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004f0| 2d 2d 0d 23 20 4f 74 68 | 65 72 20 6d 61 63 72 6f |--.# Oth|er macro|
|00000500| 20 70 61 63 6b 61 67 65 | 73 3a 0d 23 2d 2d 2d 2d | package|s:.#----|
|00000510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000550| 2d 2d 2d 2d 2d 2d 0d 0d | 73 6f 75 72 63 65 20 22 |------..|source "|
|00000560| 24 48 4f 4d 45 3a 54 63 | 6c 3a 55 73 65 72 43 6f |$HOME:Tc|l:UserCo|
|00000570| 64 65 3a 73 6d 61 72 74 | 2e 74 63 6c 22 0d 0d 23 |de:smart|.tcl"..#|
|00000580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 23 20 46 6c 61 |--------|--.# Fla|
|000005d0| 67 73 20 61 6e 64 20 56 | 61 72 69 61 62 6c 65 73 |gs and V|ariables|
|000005e0| 3a 0d 23 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |:.#-----|--------|
|000005f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 0d 73 |--------|-----..s|
|00000630| 65 74 20 74 72 75 65 20 | 31 0d 73 65 74 20 66 61 |et true |1.set fa|
|00000640| 6c 73 65 20 30 0d 0d 23 | 20 46 6c 61 67 73 3a 0d |lse 0..#| Flags:.|
|00000650| 6e 65 77 4d 6f 64 65 56 | 61 72 20 54 65 58 20 6f |newModeV|ar TeX o|
|00000660| 70 74 69 6f 6e 49 73 4d | 65 74 61 20 24 66 61 6c |ptionIsM|eta $fal|
|00000670| 73 65 20 31 0d 6e 65 77 | 4d 6f 64 65 56 61 72 20 |se 1.new|ModeVar |
|00000680| 54 65 58 20 75 73 65 42 | 6f 78 4d 61 63 72 6f 20 |TeX useB|oxMacro |
|00000690| 24 74 72 75 65 20 31 0d | 6e 65 77 4d 6f 64 65 56 |$true 1.|newModeV|
|000006a0| 61 72 20 54 65 58 20 75 | 73 65 44 6f 6c 6c 61 72 |ar TeX u|seDollar|
|000006b0| 53 69 67 6e 73 20 24 66 | 61 6c 73 65 20 31 0d 6e |Signs $f|alse 1.n|
|000006c0| 65 77 4d 6f 64 65 56 61 | 72 20 54 65 58 20 73 65 |ewModeVa|r TeX se|
|000006d0| 61 72 63 68 4e 6f 69 73 | 69 6c 79 20 24 74 72 75 |archNois|ily $tru|
|000006e0| 65 20 31 0d 6e 65 77 4d | 6f 64 65 56 61 72 20 54 |e 1.newM|odeVar T|
|000006f0| 65 58 20 70 72 6f 6d 70 | 74 4e 6f 69 73 69 6c 79 |eX promp|tNoisily|
|00000700| 20 24 74 72 75 65 20 31 | 0d 6e 65 77 4d 6f 64 65 | $true 1|.newMode|
|00000710| 56 61 72 20 54 65 58 20 | 64 65 6c 65 74 65 4f 62 |Var TeX |deleteOb|
|00000720| 6a 65 63 74 4e 6f 69 73 | 69 6c 79 20 24 74 72 75 |jectNois|ily $tru|
|00000730| 65 20 31 0d 6e 65 77 4d | 6f 64 65 56 61 72 20 54 |e 1.newM|odeVar T|
|00000740| 65 58 20 64 65 6c 65 74 | 65 45 6e 76 69 72 6f 6e |eX delet|eEnviron|
|00000750| 6d 65 6e 74 4e 6f 69 73 | 69 6c 79 20 24 74 72 75 |mentNois|ily $tru|
|00000760| 65 20 31 0d 6e 65 77 4d | 6f 64 65 56 61 72 20 54 |e 1.newM|odeVar T|
|00000770| 65 58 20 77 6f 72 64 57 | 72 61 70 20 24 74 72 75 |eX wordW|rap $tru|
|00000780| 65 20 31 0d 6e 65 77 4d | 6f 64 65 56 61 72 20 54 |e 1.newM|odeVar T|
|00000790| 65 58 20 75 73 65 53 74 | 61 74 75 73 42 61 72 20 |eX useSt|atusBar |
|000007a0| 24 74 72 75 65 20 31 0d | 0d 23 20 56 61 72 69 61 |$true 1.|.# Varia|
|000007b0| 62 6c 65 73 3a 0d 6e 65 | 77 4d 6f 64 65 56 61 72 |bles:.ne|wModeVar|
|000007c0| 20 54 65 58 20 62 6f 78 | 4d 61 63 72 6f 4e 61 6d | TeX box|MacroNam|
|000007d0| 65 20 7b 42 6f 78 65 64 | 45 50 53 46 7d 20 30 20 |e {Boxed|EPSF} 0 |
|000007e0| 0d 6e 65 77 4d 6f 64 65 | 56 61 72 20 54 65 58 20 |.newMode|Var TeX |
|000007f0| 66 75 6e 63 45 78 70 72 | 20 7b 5c 5c 28 28 73 75 |funcExpr| {\\((su|
|00000800| 62 29 2a 73 65 63 74 69 | 6f 6e 7c 63 68 61 70 74 |b)*secti|on|chapt|
|00000810| 65 72 29 28 5c 5b 2e 2a | 5c 5d 7c 5c 2a 29 3f 7b |er)(\[.*|\]|\*)?{|
|00000820| 28 5b 5e 7b 7d 5d 2a 29 | 7d 7d 20 30 0d 6e 65 77 |([^{}]*)|}} 0.new|
|00000830| 4d 6f 64 65 56 61 72 20 | 54 65 58 20 66 75 6e 63 |ModeVar |TeX func|
|00000840| 45 78 70 72 41 6c 74 20 | 7b 5c 5c 28 73 65 63 74 |ExprAlt |{\\(sect|
|00000850| 69 6f 6e 7c 63 68 61 70 | 74 65 72 29 28 5c 5b 2e |ion|chap|ter)(\[.|
|00000860| 2a 5c 5d 7c 5c 2a 29 3f | 7b 28 5b 5e 7b 7d 5d 2a |*\]|\*)?|{([^{}]*|
|00000870| 29 7d 7d 20 30 20 0d 6e | 65 77 4d 6f 64 65 56 61 |)}} 0 .n|ewModeVa|
|00000880| 72 20 54 65 58 20 70 72 | 65 66 69 78 53 74 72 69 |r TeX pr|efixStri|
|00000890| 6e 67 20 7b 25 20 7d 20 | 30 0d 6e 65 77 4d 6f 64 |ng {% } |0.newMod|
|000008a0| 65 56 61 72 20 54 65 58 | 20 77 6f 72 64 42 72 65 |eVar TeX| wordBre|
|000008b0| 61 6b 20 7b 28 5c 5c 29 | 3f 5b 61 2d 7a 41 2d 5a |ak {(\\)|?[a-zA-Z|
|000008c0| 30 2d 39 5d 2b 7d 20 30 | 0d 6e 65 77 4d 6f 64 65 |0-9]+} 0|.newMode|
|000008d0| 56 61 72 20 54 65 58 20 | 77 6f 72 64 42 72 65 61 |Var TeX |wordBrea|
|000008e0| 6b 50 72 65 66 61 63 65 | 20 7b 28 5b 5e 61 2d 7a |kPreface| {([^a-z|
|000008f0| 41 2d 5a 30 2d 39 5c 5c | 5d 7c 2e 5c 5c 29 7d 20 |A-Z0-9\\|]|.\\)} |
|00000900| 30 0d 0d 23 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |0..#----|--------|
|00000910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 23 |--------|------.#|
|00000950| 20 4d 61 72 6b 20 4d 65 | 6e 75 3a 0d 23 2d 2d 2d | Mark Me|nu:.#---|
|00000960| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009a0| 2d 2d 2d 2d 2d 2d 2d 0d | 0d 70 72 6f 63 20 54 65 |-------.|.proc Te|
|000009b0| 58 4d 61 72 6b 46 69 6c | 65 20 7b 7d 20 7b 0d 09 |XMarkFil|e {} {..|
|000009c0| 73 65 74 20 65 6e 64 20 | 5b 6d 61 78 50 6f 73 5d |set end |[maxPos]|
|000009d0| 0d 09 73 65 74 20 70 6f | 73 20 30 0d 09 73 65 74 |..set po|s 0..set|
|000009e0| 20 6c 20 7b 7d 0d 0d 09 | 23 20 52 65 6d 6f 76 65 | l {}...|# Remove|
|000009f0| 20 61 6c 6c 20 70 72 65 | 76 69 6f 75 73 20 6d 61 | all pre|vious ma|
|00000a00| 72 6b 73 20 69 6e 20 74 | 68 69 73 20 66 69 6c 65 |rks in t|his file|
|00000a10| 3f 0d 09 73 65 74 20 65 | 78 70 20 7b 5c 5c 28 28 |?..set e|xp {\\((|
|00000a20| 73 75 62 29 2a 73 65 63 | 74 69 6f 6e 7c 63 68 61 |sub)*sec|tion|cha|
|00000a30| 70 74 65 72 29 28 5c 5b | 2e 2a 5c 5d 7c 5c 2a 29 |pter)(\[|.*\]|\*)|
|00000a40| 3f 7b 28 5b 5e 7b 7d 5d | 2a 29 7d 7d 0d 09 77 68 |?{([^{}]|*)}}..wh|
|00000a50| 69 6c 65 20 7b 21 5b 63 | 61 74 63 68 20 7b 73 65 |ile {![c|atch {se|
|00000a60| 61 72 63 68 20 2d 66 20 | 31 20 2d 72 20 31 20 2d |arch -f |1 -r 1 -|
|00000a70| 6d 20 30 20 2d 69 20 30 | 20 24 65 78 70 20 24 70 |m 0 -i 0| $exp $p|
|00000a80| 6f 73 7d 20 72 65 73 5d | 7d 20 7b 0d 09 09 73 65 |os} res]|} {...se|
|00000a90| 74 20 73 74 61 72 74 20 | 5b 6c 69 6e 64 65 78 20 |t start |[lindex |
|00000aa0| 24 72 65 73 20 30 5d 0d | 09 09 73 65 74 20 65 6e |$res 0].|..set en|
|00000ab0| 64 20 5b 6c 69 6e 64 65 | 78 20 24 72 65 73 20 31 |d [linde|x $res 1|
|00000ac0| 5d 0d 09 09 73 65 74 20 | 74 65 78 74 20 5b 67 65 |]...set |text [ge|
|00000ad0| 74 54 65 78 74 20 24 73 | 74 61 72 74 20 24 65 6e |tText $s|tart $en|
|00000ae0| 64 5d 0d 09 09 69 66 20 | 7b 5b 72 65 67 65 78 70 |d]...if |{[regexp|
|00000af0| 20 7b 5c 7b 28 2e 2a 29 | 5c 7d 7d 20 24 74 65 78 | {\{(.*)|\}} $tex|
|00000b00| 74 20 64 75 6d 6d 79 20 | 6d 74 63 68 5d 7d 20 7b |t dummy |mtch]} {|
|00000b10| 0d 09 09 09 73 65 74 20 | 6c 61 62 20 22 22 0d 09 |....set |lab ""..|
|00000b20| 09 09 69 66 20 7b 5b 72 | 65 67 65 78 70 20 7b 28 |..if {[r|egexp {(|
|00000b30| 73 75 62 29 2a 73 65 63 | 74 69 6f 6e 7d 20 24 74 |sub)*sec|tion} $t|
|00000b40| 65 78 74 20 74 69 74 6c | 65 5d 7d 20 74 68 65 6e |ext titl|e]} then|
|00000b50| 20 7b 0d 09 09 09 09 61 | 70 70 65 6e 64 20 6c 61 | {.....a|ppend la|
|00000b60| 62 20 24 6c 20 5b 66 6f | 72 6d 61 74 20 22 25 5b |b $l [fo|rmat "%[|
|00000b70| 65 78 70 72 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e |expr [st|ring len|
|00000b80| 67 74 68 20 24 74 69 74 | 6c 65 5d 20 2d 20 37 5d |gth $tit|le] - 7]|
|00000b90| 5c 73 22 20 22 22 5d 0d | 09 09 09 7d 20 65 6c 73 |\s" ""].|...} els|
|00000ba0| 65 20 7b 0d 09 09 09 09 | 73 65 74 20 6c 20 7b 20 |e {.....|set l { |
|00000bb0| 20 20 7d 0d 09 09 09 7d | 0d 09 09 09 61 70 70 65 | }....}|....appe|
|00000bc0| 6e 64 20 6c 61 62 20 24 | 6d 74 63 68 0d 09 09 09 |nd lab $|mtch....|
|00000bd0| 73 65 74 4e 61 6d 65 64 | 4d 61 72 6b 20 24 6c 61 |setNamed|Mark $la|
|00000be0| 62 20 5b 6c 69 6e 65 53 | 74 61 72 74 20 5b 65 78 |b [lineS|tart [ex|
|00000bf0| 70 72 20 24 73 74 61 72 | 74 20 2d 20 31 5d 5d 20 |pr $star|t - 1]] |
|00000c00| 24 73 74 61 72 74 20 24 | 73 74 61 72 74 0d 09 09 |$start $|start...|
|00000c10| 7d 0d 09 09 73 65 74 20 | 70 6f 73 20 5b 65 78 70 |}...set |pos [exp|
|00000c20| 72 20 24 65 6e 64 2b 31 | 5d 0d 09 7d 0d 7d 0d 0d |r $end+1|]..}.}..|
|00000c30| 23 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |#-------|--------|
|00000c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 23 20 49 6e |--------|---.# In|
|00000c80| 73 65 72 74 69 6f 6e 20 | 72 6f 75 74 69 6e 65 73 |sertion |routines|
|00000c90| 3a 0d 23 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |:.#-----|--------|
|00000ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 0d 23 |--------|-----..#|
|00000ce0| 20 52 65 74 75 72 6e 73 | 20 61 20 6d 6f 64 69 66 | Returns| a modif|
|00000cf0| 69 65 64 20 74 65 78 74 | 20 73 74 72 69 6e 67 20 |ied text| string |
|00000d00| 69 66 20 74 68 65 20 73 | 74 72 69 6e 67 20 24 74 |if the s|tring $t|
|00000d10| 65 78 74 20 69 73 20 6e | 6f 6e 2d 6e 75 6c 6c 2c |ext is n|on-null,|
|00000d20| 20 0d 23 20 61 6e 64 20 | 74 68 65 20 6e 75 6c 6c | .# and |the null|
|00000d30| 20 73 74 72 69 6e 67 20 | 6f 74 68 65 72 77 69 73 | string |otherwis|
|00000d40| 65 2e 20 20 54 68 65 20 | 61 72 67 75 6d 65 6e 74 |e. The |argument|
|00000d50| 20 27 6f 70 65 72 61 74 | 69 6f 6e 27 20 69 73 20 | 'operat|ion' is |
|00000d60| 61 20 0d 23 20 73 74 72 | 69 6e 67 20 64 69 72 65 |a .# str|ing dire|
|00000d70| 63 74 69 6e 67 20 27 64 | 6f 50 72 65 66 69 78 54 |cting 'd|oPrefixT|
|00000d80| 65 78 74 27 20 74 6f 20 | 65 69 74 68 65 72 20 22 |ext' to |either "|
|00000d90| 69 6e 73 65 72 74 22 20 | 6f 72 20 22 72 65 6d 6f |insert" |or "remo|
|00000da0| 76 65 22 20 0d 23 20 24 | 70 72 65 66 69 78 53 74 |ve" .# $|prefixSt|
|00000db0| 72 69 6e 67 20 74 6f 2f | 66 72 6f 6d 20 65 61 63 |ring to/|from eac|
|00000dc0| 68 20 6c 69 6e 65 20 6f | 66 20 24 74 65 78 74 2e |h line o|f $text.|
|00000dd0| 20 20 28 54 68 69 73 20 | 72 6f 75 74 69 6e 65 20 | (This |routine |
|00000de0| 69 73 0d 23 20 61 64 61 | 70 74 65 64 20 66 72 6f |is.# ada|pted fro|
|00000df0| 6d 20 73 74 72 69 6e 67 | 73 2e 74 63 6c 2e 29 0d |m string|s.tcl.).|
|00000e00| 70 72 6f 63 20 64 6f 50 | 72 65 66 69 78 54 65 78 |proc doP|refixTex|
|00000e10| 74 20 7b 6f 70 65 72 61 | 74 69 6f 6e 20 70 72 65 |t {opera|tion pre|
|00000e20| 66 69 78 53 74 72 69 6e | 67 20 74 65 78 74 7d 20 |fixStrin|g text} |
|00000e30| 7b 0d 09 69 66 20 7b 24 | 74 65 78 74 20 3d 3d 20 |{..if {$|text == |
|00000e40| 22 22 7d 20 7b 72 65 74 | 75 72 6e 20 22 22 7d 0d |""} {ret|urn ""}.|
|00000e50| 09 73 65 74 20 70 72 65 | 66 20 5b 71 75 6f 74 65 |.set pre|f [quote|
|00000e60| 45 78 70 72 20 24 70 72 | 65 66 69 78 53 74 72 69 |Expr $pr|efixStri|
|00000e70| 6e 67 5d 0d 09 69 66 20 | 7b 24 6f 70 65 72 61 74 |ng]..if |{$operat|
|00000e80| 69 6f 6e 20 3d 3d 20 22 | 69 6e 73 65 72 74 22 7d |ion == "|insert"}|
|00000e90| 20 74 68 65 6e 20 7b 0d | 09 09 73 65 74 20 74 72 | then {.|..set tr|
|00000ea0| 61 69 6c 43 68 61 72 20 | 22 22 0d 09 09 73 65 74 |ailChar |""...set|
|00000eb0| 20 74 65 78 74 4c 65 6e | 20 5b 73 74 72 69 6e 67 | textLen| [string|
|00000ec0| 20 6c 65 6e 67 74 68 20 | 24 74 65 78 74 5d 0d 09 | length |$text]..|
|00000ed0| 09 69 66 20 7b 5b 73 74 | 72 69 6e 67 20 69 6e 64 |.if {[st|ring ind|
|00000ee0| 65 78 20 24 74 65 78 74 | 20 5b 65 78 70 72 20 24 |ex $text| [expr $|
|00000ef0| 74 65 78 74 4c 65 6e 2d | 31 5d 5d 20 3d 3d 20 22 |textLen-|1]] == "|
|00000f00| 5c 72 22 7d 20 74 68 65 | 6e 20 7b 0d 09 09 09 73 |\r"} the|n {....s|
|00000f10| 65 74 20 74 65 78 74 20 | 5b 73 74 72 69 6e 67 20 |et text |[string |
|00000f20| 72 61 6e 67 65 20 24 74 | 65 78 74 20 30 20 5b 65 |range $t|ext 0 [e|
|00000f30| 78 70 72 20 24 74 65 78 | 74 4c 65 6e 2d 32 5d 5d |xpr $tex|tLen-2]]|
|00000f40| 0d 09 09 09 73 65 74 20 | 74 72 61 69 6c 43 68 61 |....set |trailCha|
|00000f50| 72 20 22 5c 72 22 0d 09 | 09 7d 0d 09 09 73 65 74 |r "\r"..|.}...set|
|00000f60| 20 73 74 72 20 5c 72 24 | 70 72 65 66 69 78 53 74 | str \r$|prefixSt|
|00000f70| 72 69 6e 67 0d 09 09 72 | 65 67 73 75 62 20 2d 61 |ring...r|egsub -a|
|00000f80| 6c 6c 20 5c 72 20 24 74 | 65 78 74 20 24 73 74 72 |ll \r $t|ext $str|
|00000f90| 20 74 65 78 74 0d 09 09 | 72 65 74 75 72 6e 20 24 | text...|return $|
|00000fa0| 70 72 65 66 69 78 53 74 | 72 69 6e 67 24 74 65 78 |prefixSt|ring$tex|
|00000fb0| 74 24 74 72 61 69 6c 43 | 68 61 72 0d 09 7d 20 65 |t$trailC|har..} e|
|00000fc0| 6c 73 65 69 66 20 7b 24 | 6f 70 65 72 61 74 69 6f |lseif {$|operatio|
|00000fd0| 6e 20 3d 3d 20 22 72 65 | 6d 6f 76 65 22 7d 20 74 |n == "re|move"} t|
|00000fe0| 68 65 6e 20 7b 0d 09 09 | 72 65 67 73 75 62 20 2d |hen {...|regsub -|
|00000ff0| 61 6c 6c 20 5c 72 24 70 | 72 65 66 20 24 74 65 78 |all \r$p|ref $tex|
|00001000| 74 20 5c 72 20 74 65 78 | 74 0d 09 09 72 65 67 73 |t \r tex|t...regs|
|00001010| 75 62 20 5e 24 70 72 65 | 66 20 24 74 65 78 74 20 |ub ^$pre|f $text |
|00001020| 22 22 20 74 65 78 74 0d | 09 09 72 65 74 75 72 6e |"" text.|..return|
|00001030| 20 24 74 65 78 74 0d 09 | 7d 0d 7d 0d 0d 23 20 53 | $text..|}.}..# S|
|00001040| 68 69 66 74 20 65 61 63 | 68 20 6c 69 6e 65 20 6f |hift eac|h line o|
|00001050| 66 20 24 74 65 78 74 20 | 74 6f 20 74 68 65 20 72 |f $text |to the r|
|00001060| 69 67 68 74 20 62 79 20 | 69 6e 73 65 72 74 69 6e |ight by |insertin|
|00001070| 67 20 61 20 73 74 72 69 | 6e 67 20 6f 66 0d 23 20 |g a stri|ng of.# |
|00001080| 24 77 68 69 74 65 73 70 | 61 63 65 20 63 68 61 72 |$whitesp|ace char|
|00001090| 61 63 74 65 72 73 20 61 | 74 20 74 68 65 20 62 65 |acters a|t the be|
|000010a0| 67 69 6e 6e 69 6e 67 20 | 6f 66 20 65 61 63 68 20 |ginning |of each |
|000010b0| 6c 69 6e 65 2c 20 72 65 | 74 75 72 6e 69 6e 67 0d |line, re|turning.|
|000010c0| 23 20 74 68 65 20 72 65 | 73 75 6c 74 69 6e 67 20 |# the re|sulting |
|000010d0| 73 74 72 69 6e 67 2e 0d | 70 72 6f 63 20 73 68 69 |string..|proc shi|
|000010e0| 66 74 54 65 78 74 52 69 | 67 68 74 20 7b 74 65 78 |ftTextRi|ght {tex|
|000010f0| 74 20 77 68 69 74 65 73 | 70 61 63 65 7d 20 7b 0d |t whites|pace} {.|
|00001100| 09 72 65 74 75 72 6e 20 | 5b 64 6f 50 72 65 66 69 |.return |[doPrefi|
|00001110| 78 54 65 78 74 20 22 69 | 6e 73 65 72 74 22 20 24 |xText "i|nsert" $|
|00001120| 77 68 69 74 65 73 70 61 | 63 65 20 24 74 65 78 74 |whitespa|ce $text|
|00001130| 5d 0d 7d 0d 0d 23 20 52 | 65 74 75 72 6e 20 61 20 |].}..# R|eturn a |
|00001140| 73 74 72 69 6e 67 20 6f | 66 20 77 68 69 74 65 73 |string o|f whites|
|00001150| 70 61 63 65 20 63 68 61 | 72 61 63 74 65 72 73 20 |pace cha|racters |
|00001160| 66 72 6f 6d 20 74 68 65 | 20 62 65 67 69 6e 6e 69 |from the| beginni|
|00001170| 6e 67 20 0d 23 20 6f 66 | 20 74 68 65 20 6c 69 6e |ng .# of| the lin|
|00001180| 65 20 63 6f 6e 74 61 69 | 6e 69 6e 67 20 24 70 6f |e contai|ning $po|
|00001190| 73 20 75 70 20 74 6f 20 | 74 68 65 20 66 69 72 73 |s up to |the firs|
|000011a0| 74 20 6e 6f 6e 2d 77 68 | 69 74 65 73 70 61 63 65 |t non-wh|itespace|
|000011b0| 20 0d 23 20 63 68 61 72 | 61 63 74 65 72 2e 0d 70 | .# char|acter..p|
|000011c0| 72 6f 63 20 67 65 74 49 | 6e 64 65 6e 74 61 74 69 |roc getI|ndentati|
|000011d0| 6f 6e 20 7b 70 6f 73 7d | 20 7b 0d 09 73 65 74 20 |on {pos}| {..set |
|000011e0| 74 65 78 74 20 5b 67 65 | 74 54 65 78 74 20 5b 6c |text [ge|tText [l|
|000011f0| 69 6e 65 53 74 61 72 74 | 20 24 70 6f 73 5d 20 5b |ineStart| $pos] [|
|00001200| 6e 65 78 74 4c 69 6e 65 | 53 74 61 72 74 20 24 70 |nextLine|Start $p|
|00001210| 6f 73 5d 5d 0d 09 72 65 | 67 65 78 70 20 7b 5e 5b |os]]..re|gexp {^[|
|00001220| 20 5c 74 5d 2a 7d 20 24 | 74 65 78 74 20 74 68 65 | \t]*} $|text the|
|00001230| 49 6e 64 65 6e 74 61 74 | 69 6f 6e 0d 09 72 65 74 |Indentat|ion..ret|
|00001240| 75 72 6e 20 24 74 68 65 | 49 6e 64 65 6e 74 61 74 |urn $the|Indentat|
|00001250| 69 6f 6e 0d 7d 0d 0d 23 | 20 52 65 74 75 72 6e 20 |ion.}..#| Return |
|00001260| 61 6e 20 22 69 6e 64 65 | 6e 74 65 64 20 63 61 72 |an "inde|nted car|
|00001270| 72 69 61 67 65 20 72 65 | 74 75 72 6e 22 20 69 66 |riage re|turn" if|
|00001280| 20 61 6e 79 20 63 68 61 | 72 61 63 74 65 72 20 70 | any cha|racter p|
|00001290| 72 65 63 65 64 69 6e 67 | 20 0d 23 20 74 68 65 20 |receding| .# the |
|000012a0| 69 6e 73 65 72 74 69 6f | 6e 20 70 6f 69 6e 74 20 |insertio|n point |
|000012b0| 28 6f 6e 20 74 68 65 20 | 73 61 6d 65 20 6c 69 6e |(on the |same lin|
|000012c0| 65 29 20 69 73 20 61 20 | 6e 6f 6e 2d 77 68 69 74 |e) is a |non-whit|
|000012d0| 65 73 70 61 63 65 20 0d | 23 20 63 68 61 72 61 63 |espace .|# charac|
|000012e0| 74 65 72 2e 20 20 4f 74 | 68 65 72 77 69 73 65 2c |ter. Ot|herwise,|
|000012f0| 20 72 65 74 75 72 6e 20 | 74 68 65 20 6e 75 6c 6c | return |the null|
|00001300| 20 73 74 72 69 6e 67 2e | 0d 70 72 6f 63 20 6f 70 | string.|.proc op|
|00001310| 65 6e 69 6e 67 43 61 72 | 72 69 61 67 65 52 65 74 |eningCar|riageRet|
|00001320| 75 72 6e 20 7b 7d 20 7b | 0d 09 73 65 74 20 70 6f |urn {} {|..set po|
|00001330| 73 20 5b 67 65 74 50 6f | 73 5d 0d 09 73 65 74 20 |s [getPo|s]..set |
|00001340| 65 6e 64 20 24 70 6f 73 | 0d 09 73 65 74 20 73 74 |end $pos|..set st|
|00001350| 61 72 74 20 5b 6c 69 6e | 65 53 74 61 72 74 20 24 |art [lin|eStart $|
|00001360| 70 6f 73 5d 0d 09 73 65 | 74 20 74 65 78 74 20 5b |pos]..se|t text [|
|00001370| 67 65 74 54 65 78 74 20 | 24 73 74 61 72 74 20 24 |getText |$start $|
|00001380| 65 6e 64 5d 0d 09 69 66 | 20 7b 5b 69 73 57 68 69 |end]..if| {[isWhi|
|00001390| 74 65 73 70 61 63 65 20 | 24 74 65 78 74 5d 7d 20 |tespace |$text]} |
|000013a0| 74 68 65 6e 20 7b 0d 09 | 09 69 66 20 7b 24 73 74 |then {..|.if {$st|
|000013b0| 61 72 74 20 3d 3d 20 24 | 65 6e 64 7d 20 7b 72 65 |art == $|end} {re|
|000013c0| 74 75 72 6e 20 5b 67 65 | 74 49 6e 64 65 6e 74 61 |turn [ge|tIndenta|
|000013d0| 74 69 6f 6e 20 24 70 6f | 73 5d 7d 20 7b 72 65 74 |tion $po|s]} {ret|
|000013e0| 75 72 6e 20 22 22 7d 0d | 09 7d 20 65 6c 73 65 20 |urn ""}.|.} else |
|000013f0| 7b 0d 09 09 72 65 74 75 | 72 6e 20 22 5c 72 5b 67 |{...retu|rn "\r[g|
|00001400| 65 74 49 6e 64 65 6e 74 | 61 74 69 6f 6e 20 24 70 |etIndent|ation $p|
|00001410| 6f 73 5d 22 0d 09 7d 0d | 7d 0d 23 20 52 65 74 75 |os]"..}.|}.# Retu|
|00001420| 72 6e 20 61 6e 20 22 69 | 6e 64 65 6e 74 65 64 20 |rn an "i|ndented |
|00001430| 63 61 72 72 69 61 67 65 | 20 72 65 74 75 72 6e 22 |carriage| return"|
|00001440| 20 69 66 20 61 6e 79 20 | 63 68 61 72 61 63 74 65 | if any |characte|
|00001450| 72 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 0d 23 20 74 |r follow|ing .# t|
|00001460| 68 65 20 69 6e 73 65 72 | 74 69 6f 6e 20 70 6f 69 |he inser|tion poi|
|00001470| 6e 74 20 28 6f 6e 20 74 | 68 65 20 73 61 6d 65 20 |nt (on t|he same |
|00001480| 6c 69 6e 65 29 20 69 73 | 20 61 20 6e 6f 6e 2d 77 |line) is| a non-w|
|00001490| 68 69 74 65 73 70 61 63 | 65 20 0d 23 20 63 68 61 |hitespac|e .# cha|
|000014a0| 72 61 63 74 65 72 2e 20 | 20 4f 74 68 65 72 77 69 |racter. | Otherwi|
|000014b0| 73 65 2c 20 72 65 74 75 | 72 6e 20 74 68 65 20 6e |se, retu|rn the n|
|000014c0| 75 6c 6c 20 73 74 72 69 | 6e 67 2e 0d 70 72 6f 63 |ull stri|ng..proc|
|000014d0| 20 63 6c 6f 73 69 6e 67 | 43 61 72 72 69 61 67 65 | closing|Carriage|
|000014e0| 52 65 74 75 72 6e 20 7b | 7d 20 7b 0d 09 73 65 74 |Return {|} {..set|
|000014f0| 20 70 6f 73 20 5b 73 65 | 6c 45 6e 64 5d 0d 09 69 | pos [se|lEnd]..i|
|00001500| 66 20 7b 5b 69 73 53 65 | 6c 65 63 74 69 6f 6e 5d |f {[isSe|lection]|
|00001510| 20 26 26 20 28 24 70 6f | 73 20 3d 3d 20 5b 6c 69 | && ($po|s == [li|
|00001520| 6e 65 53 74 61 72 74 20 | 24 70 6f 73 5d 29 7d 20 |neStart |$pos])} |
|00001530| 74 68 65 6e 20 7b 0d 09 | 09 72 65 74 75 72 6e 20 |then {..|.return |
|00001540| 22 5c 72 22 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |"\r"..} |else {..|
|00001550| 09 73 65 74 20 73 74 61 | 72 74 20 24 70 6f 73 0d |.set sta|rt $pos.|
|00001560| 09 09 73 65 74 20 65 6e | 64 20 5b 6e 65 78 74 4c |..set en|d [nextL|
|00001570| 69 6e 65 53 74 61 72 74 | 20 24 73 74 61 72 74 5d |ineStart| $start]|
|00001580| 0d 09 09 73 65 74 20 74 | 65 78 74 20 5b 67 65 74 |...set t|ext [get|
|00001590| 54 65 78 74 20 24 73 74 | 61 72 74 20 24 65 6e 64 |Text $st|art $end|
|000015a0| 5d 0d 09 09 69 66 20 7b | 5b 69 73 57 68 69 74 65 |]...if {|[isWhite|
|000015b0| 73 70 61 63 65 20 24 74 | 65 78 74 5d 7d 20 74 68 |space $t|ext]} th|
|000015c0| 65 6e 20 7b 0d 09 09 09 | 72 65 74 75 72 6e 20 22 |en {....|return "|
|000015d0| 22 0d 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |"...} el|se {....|
|000015e0| 72 65 74 75 72 6e 20 22 | 5c 72 5b 67 65 74 49 6e |return "|\r[getIn|
|000015f0| 64 65 6e 74 61 74 69 6f | 6e 20 24 70 6f 73 5d 22 |dentatio|n $pos]"|
|00001600| 0d 09 09 7d 0d 09 7d 0d | 7d 0d 0d 23 20 49 6e 73 |...}..}.|}..# Ins|
|00001610| 65 72 74 20 61 6e 20 6f | 62 6a 65 63 74 20 61 74 |ert an o|bject at|
|00001620| 20 74 68 65 20 69 6e 73 | 65 72 74 69 6f 6e 20 70 | the ins|ertion p|
|00001630| 6f 69 6e 74 2e 20 49 66 | 20 74 68 65 72 65 20 69 |oint. If| there i|
|00001640| 73 20 61 20 73 65 6c 65 | 63 74 69 6f 6e 20 61 6e |s a sele|ction an|
|00001650| 64 20 74 68 65 20 0d 23 | 20 67 6c 6f 62 61 6c 20 |d the .#| global |
|00001660| 76 61 72 69 61 62 6c 65 | 20 27 64 65 6c 65 74 65 |variable| 'delete|
|00001670| 4f 62 6a 65 63 74 4e 6f | 69 73 69 6c 79 27 20 69 |ObjectNo|isily' i|
|00001680| 73 20 66 61 6c 73 65 2c | 20 71 75 69 65 74 6c 79 |s false,| quietly|
|00001690| 20 64 65 6c 65 74 65 20 | 74 68 65 20 73 65 6c 65 | delete |the sele|
|000016a0| 63 74 69 6f 6e 20 0d 23 | 20 66 69 72 73 74 20 28 |ction .#| first (|
|000016b0| 6a 75 73 74 20 6c 69 6b | 65 20 27 70 61 73 74 65 |just lik|e 'paste|
|000016c0| 27 29 2e 20 4f 74 68 65 | 72 77 69 73 65 2c 20 70 |'). Othe|rwise, p|
|000016d0| 72 6f 6d 70 74 20 74 68 | 65 20 75 73 65 72 20 66 |rompt th|e user f|
|000016e0| 6f 72 20 74 68 65 20 61 | 70 70 72 6f 70 72 69 61 |or the a|ppropria|
|000016f0| 74 65 20 0d 23 20 61 63 | 74 69 6f 6e 2e 20 52 65 |te .# ac|tion. Re|
|00001700| 74 75 72 6e 73 20 74 72 | 75 65 20 69 66 20 74 68 |turns tr|ue if th|
|00001710| 65 20 6f 62 6a 65 63 74 | 20 69 73 20 75 6c 74 69 |e object| is ulti|
|00001720| 6d 61 74 65 6c 79 20 69 | 6e 73 65 72 74 65 64 2c |mately i|nserted,|
|00001730| 20 61 6e 64 20 66 61 6c | 73 65 20 69 66 20 74 68 | and fal|se if th|
|00001740| 65 20 0d 23 20 75 73 65 | 72 20 63 61 6e 63 65 6c |e .# use|r cancel|
|00001750| 73 20 74 68 65 20 6f 70 | 65 72 61 74 69 6f 6e 2e |s the op|eration.|
|00001760| 20 0d 70 72 6f 63 20 69 | 6e 73 65 72 74 4f 62 6a | .proc i|nsertObj|
|00001770| 65 63 74 20 7b 6f 62 6a | 65 63 74 4e 61 6d 65 7d |ect {obj|ectName}|
|00001780| 20 7b 0d 09 67 6c 6f 62 | 61 6c 20 64 65 6c 65 74 | {..glob|al delet|
|00001790| 65 4f 62 6a 65 63 74 4e | 6f 69 73 69 6c 79 0d 09 |eObjectN|oisily..|
|000017a0| 69 66 20 7b 5b 69 73 53 | 65 6c 65 63 74 69 6f 6e |if {[isS|election|
|000017b0| 5d 7d 20 74 68 65 6e 20 | 7b 0d 09 09 69 66 20 7b |]} then |{...if {|
|000017c0| 24 64 65 6c 65 74 65 4f | 62 6a 65 63 74 4e 6f 69 |$deleteO|bjectNoi|
|000017d0| 73 69 6c 79 7d 20 74 68 | 65 6e 20 7b 0d 09 09 09 |sily} th|en {....|
|000017e0| 63 61 73 65 20 5b 61 73 | 6b 79 65 73 6e 6f 20 2d |case [as|kyesno -|
|000017f0| 63 20 22 44 65 6c 65 74 | 65 20 73 65 6c 65 63 74 |c "Delet|e select|
|00001800| 69 6f 6e 3f 22 5d 20 69 | 6e 20 7b 0d 09 09 09 09 |ion?"] i|n {.....|
|00001810| 22 79 65 73 22 20 7b 64 | 65 6c 65 74 65 54 65 78 |"yes" {d|eleteTex|
|00001820| 74 20 5b 67 65 74 50 6f | 73 5d 20 5b 73 65 6c 45 |t [getPo|s] [selE|
|00001830| 6e 64 5d 7d 0d 09 09 09 | 09 22 6e 6f 22 20 7b 62 |nd]}....|."no" {b|
|00001840| 61 63 6b 77 61 72 64 43 | 68 61 72 7d 0d 09 09 09 |ackwardC|har}....|
|00001850| 09 22 63 61 6e 63 65 6c | 22 20 7b 72 65 74 75 72 |."cancel|" {retur|
|00001860| 6e 20 30 7d 0d 09 09 09 | 7d 0d 09 09 7d 20 65 6c |n 0}....|}...} el|
|00001870| 73 65 20 7b 0d 09 09 09 | 64 65 6c 65 74 65 54 65 |se {....|deleteTe|
|00001880| 78 74 20 5b 67 65 74 50 | 6f 73 5d 20 5b 73 65 6c |xt [getP|os] [sel|
|00001890| 45 6e 64 5d 0d 09 09 7d | 0d 09 7d 0d 09 69 6e 73 |End]...}|..}..ins|
|000018a0| 65 72 74 54 65 78 74 20 | 24 6f 62 6a 65 63 74 4e |ertText |$objectN|
|000018b0| 61 6d 65 0d 09 72 65 74 | 75 72 6e 20 31 0d 7d 0d |ame..ret|urn 1.}.|
|000018c0| 0d 23 20 49 6e 73 65 72 | 74 20 61 6e 20 6f 62 6a |.# Inser|t an obj|
|000018d0| 65 63 74 20 61 74 20 74 | 68 65 20 69 6e 73 65 72 |ect at t|he inser|
|000018e0| 74 69 6f 6e 20 70 6f 69 | 6e 74 2e 20 49 66 20 74 |tion poi|nt. If t|
|000018f0| 68 65 72 65 20 69 73 20 | 61 20 73 65 6c 65 63 74 |here is |a select|
|00001900| 69 6f 6e 2c 20 77 72 61 | 70 20 0d 23 20 69 74 20 |ion, wra|p .# it |
|00001910| 69 6e 73 69 64 65 20 74 | 68 65 20 70 61 72 61 6d |inside t|he param|
|00001920| 65 74 65 72 73 20 24 6c | 65 66 74 20 61 6e 64 20 |eters $l|eft and |
|00001930| 24 72 69 67 68 74 2e 20 | 52 65 74 75 72 6e 73 20 |$right. |Returns |
|00001940| 74 72 75 65 20 69 66 20 | 74 68 65 72 65 20 69 73 |true if |there is|
|00001950| 20 61 20 0d 23 20 73 65 | 6c 65 63 74 69 6f 6e 20 | a .# se|lection |
|00001960| 28 69 6e 20 77 68 69 63 | 68 20 63 61 73 65 20 69 |(in whic|h case i|
|00001970| 74 20 77 69 6c 6c 20 77 | 72 61 70 29 2c 20 61 6e |t will w|rap), an|
|00001980| 64 20 66 61 6c 73 65 20 | 6f 74 68 65 72 77 69 73 |d false |otherwis|
|00001990| 65 2e 20 0d 70 72 6f 63 | 20 77 72 61 70 4f 62 6a |e. .proc| wrapObj|
|000019a0| 65 63 74 20 7b 6c 65 66 | 74 20 72 69 67 68 74 7d |ect {lef|t right}|
|000019b0| 20 7b 0d 09 73 65 74 20 | 63 75 72 72 65 6e 74 50 | {..set |currentP|
|000019c0| 6f 73 20 5b 67 65 74 50 | 6f 73 5d 0d 09 73 65 74 |os [getP|os]..set|
|000019d0| 20 73 65 6c 65 63 74 65 | 64 20 5b 69 73 53 65 6c | selecte|d [isSel|
|000019e0| 65 63 74 69 6f 6e 5d 0d | 09 69 66 20 7b 24 73 65 |ection].|.if {$se|
|000019f0| 6c 65 63 74 65 64 7d 20 | 74 68 65 6e 20 7b 0d 09 |lected} |then {..|
|00001a00| 09 72 65 70 6c 61 63 65 | 54 65 78 74 20 24 63 75 |.replace|Text $cu|
|00001a10| 72 72 65 6e 74 50 6f 73 | 20 5b 73 65 6c 45 6e 64 |rrentPos| [selEnd|
|00001a20| 5d 20 24 6c 65 66 74 20 | 5b 67 65 74 53 65 6c 65 |] $left |[getSele|
|00001a30| 63 74 5d 20 24 72 69 67 | 68 74 0d 09 7d 20 65 6c |ct] $rig|ht..} el|
|00001a40| 73 65 20 7b 0d 09 09 69 | 6e 73 65 72 74 54 65 78 |se {...i|nsertTex|
|00001a50| 74 20 24 6c 65 66 74 20 | 22 a5 22 20 24 72 69 67 |t $left |"." $rig|
|00001a60| 68 74 0d 09 7d 0d 09 67 | 6f 74 6f 20 24 63 75 72 |ht..}..g|oto $cur|
|00001a70| 72 65 6e 74 50 6f 73 0d | 09 6e 65 78 74 54 61 62 |rentPos.|.nextTab|
|00001a80| 53 74 6f 70 0d 09 72 65 | 74 75 72 6e 20 24 73 65 |Stop..re|turn $se|
|00001a90| 6c 65 63 74 65 64 0d 7d | 0d 0d 23 20 42 75 69 6c |lected.}|..# Buil|
|00001aa0| 64 73 20 61 6e 64 20 72 | 65 74 75 72 6e 73 20 61 |ds and r|eturns a|
|00001ab0| 20 4c 61 54 65 58 20 65 | 6e 76 69 72 6f 6e 6d 65 | LaTeX e|nvironme|
|00001ac0| 6e 74 2c 20 74 68 61 74 | 20 69 73 2c 20 61 20 5c |nt, that| is, a \|
|00001ad0| 62 65 67 69 6e 2e 2e 2e | 5c 65 6e 64 20 0d 23 20 |begin...|\end .# |
|00001ae0| 70 61 69 72 2c 20 67 69 | 76 65 6e 20 74 68 65 20 |pair, gi|ven the |
|00001af0| 6e 61 6d 65 20 6f 66 20 | 74 68 65 20 65 6e 76 69 |name of |the envi|
|00001b00| 72 6f 6e 6d 65 6e 74 2c | 20 61 6e 20 61 72 67 75 |ronment,| an argu|
|00001b10| 6d 65 6e 74 20 73 74 72 | 69 6e 67 2c 20 0d 23 20 |ment str|ing, .# |
|00001b20| 61 6e 64 20 74 68 65 20 | 65 6e 76 69 72 6f 6e 6d |and the |environm|
|00001b30| 65 6e 74 20 62 6f 64 79 | 2e 20 20 54 68 65 20 62 |ent body|. The b|
|00001b40| 6f 64 79 20 73 68 6f 75 | 6c 64 20 62 65 20 70 61 |ody shou|ld be pa|
|00001b50| 73 73 65 64 20 74 6f 20 | 74 68 69 73 20 0d 23 20 |ssed to |this .# |
|00001b60| 70 72 6f 63 65 64 75 72 | 65 20 66 75 6c 6c 79 20 |procedur|e fully |
|00001b70| 66 6f 72 6d 61 74 74 65 | 64 2c 20 69 6e 63 6c 75 |formatte|d, inclu|
|00001b80| 64 69 6e 67 20 69 6e 64 | 65 6e 74 61 74 69 6f 6e |ding ind|entation|
|00001b90| 2e 0d 70 72 6f 63 20 62 | 75 69 6c 64 45 6e 76 69 |..proc b|uildEnvi|
|00001ba0| 72 6f 6e 6d 65 6e 74 20 | 7b 65 6e 76 4e 61 6d 65 |ronment |{envName|
|00001bb0| 20 65 6e 76 41 72 67 20 | 65 6e 76 42 6f 64 79 20 | envArg |envBody |
|00001bc0| 74 72 61 69 6c 69 6e 67 | 43 6f 6d 6d 65 6e 74 7d |trailing|Comment}|
|00001bd0| 20 7b 0d 09 73 65 74 20 | 69 6e 64 65 6e 74 20 5b | {..set |indent [|
|00001be0| 67 65 74 49 6e 64 65 6e | 74 61 74 69 6f 6e 20 5b |getInden|tation [|
|00001bf0| 67 65 74 50 6f 73 5d 5d | 0d 09 73 65 74 20 65 6e |getPos]]|..set en|
|00001c00| 76 53 74 72 20 5b 6f 70 | 65 6e 69 6e 67 43 61 72 |vStr [op|eningCar|
|00001c10| 72 69 61 67 65 52 65 74 | 75 72 6e 5d 0d 09 61 70 |riageRet|urn]..ap|
|00001c20| 70 65 6e 64 20 65 6e 76 | 53 74 72 20 22 5c 5c 62 |pend env|Str "\\b|
|00001c30| 65 67 69 6e 7b 22 20 24 | 65 6e 76 4e 61 6d 65 20 |egin{" $|envName |
|00001c40| 22 7d 22 0d 09 61 70 70 | 65 6e 64 20 65 6e 76 53 |"}"..app|end envS|
|00001c50| 74 72 20 24 65 6e 76 41 | 72 67 20 22 5c 72 22 0d |tr $envA|rg "\r".|
|00001c60| 09 61 70 70 65 6e 64 20 | 65 6e 76 53 74 72 20 24 |.append |envStr $|
|00001c70| 65 6e 76 42 6f 64 79 0d | 09 61 70 70 65 6e 64 20 |envBody.|.append |
|00001c80| 65 6e 76 53 74 72 20 24 | 69 6e 64 65 6e 74 20 22 |envStr $|indent "|
|00001c90| 5c 5c 65 6e 64 7b 22 20 | 24 65 6e 76 4e 61 6d 65 |\\end{" |$envName|
|00001ca0| 20 22 7d 24 74 72 61 69 | 6c 69 6e 67 43 6f 6d 6d | "}$trai|lingComm|
|00001cb0| 65 6e 74 22 0d 09 61 70 | 70 65 6e 64 20 65 6e 76 |ent"..ap|pend env|
|00001cc0| 53 74 72 20 5b 63 6c 6f | 73 69 6e 67 43 61 72 72 |Str [clo|singCarr|
|00001cd0| 69 61 67 65 52 65 74 75 | 72 6e 5d 0d 09 72 65 74 |iageRetu|rn]..ret|
|00001ce0| 75 72 6e 20 24 65 6e 76 | 53 74 72 0d 7d 0d 0d 23 |urn $env|Str.}..#|
|00001cf0| 20 49 6e 73 65 72 74 73 | 20 61 20 4c 61 54 65 58 | Inserts| a LaTeX|
|00001d00| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 20 77 69 74 | environ|ment wit|
|00001d10| 68 20 74 68 65 20 73 70 | 65 63 69 66 69 65 64 20 |h the sp|ecified |
|00001d20| 6e 61 6d 65 2c 20 61 72 | 67 75 6d 65 6e 74 2c 20 |name, ar|gument, |
|00001d30| 0d 23 20 61 6e 64 20 62 | 6f 64 79 20 61 74 20 74 |.# and b|ody at t|
|00001d40| 68 65 20 69 6e 73 65 72 | 74 69 6f 6e 20 70 6f 69 |he inser|tion poi|
|00001d50| 6e 74 2e 20 20 50 6f 73 | 69 74 69 6f 6e 73 20 74 |nt. Pos|itions t|
|00001d60| 68 65 20 63 75 72 73 6f | 72 20 61 74 20 74 68 65 |he curso|r at the|
|00001d70| 20 0d 23 20 62 65 67 69 | 6e 6e 69 6e 67 20 6f 66 | .# begi|nning of|
|00001d80| 20 74 68 65 20 65 6e 76 | 69 72 6f 6e 6d 65 6e 74 | the env|ironment|
|00001d90| 2c 20 6c 65 61 76 69 6e | 67 20 61 6e 79 20 73 75 |, leavin|g any su|
|00001da0| 62 73 65 71 75 65 6e 74 | 20 61 63 74 69 6f 6e 20 |bsequent| action |
|00001db0| 74 6f 20 74 68 65 20 0d | 23 20 63 61 6c 6c 69 6e |to the .|# callin|
|00001dc0| 67 20 70 72 6f 63 65 64 | 75 72 65 2e 20 20 44 65 |g proced|ure. De|
|00001dd0| 6c 65 74 65 73 20 74 68 | 65 20 63 75 72 72 65 6e |letes th|e curren|
|00001de0| 74 20 73 65 6c 65 63 74 | 69 6f 6e 20 71 75 69 65 |t select|ion quie|
|00001df0| 74 6c 79 20 69 66 20 74 | 68 65 20 0d 23 20 67 6c |tly if t|he .# gl|
|00001e00| 6f 62 61 6c 20 76 61 72 | 69 61 62 6c 65 20 27 64 |obal var|iable 'd|
|00001e10| 65 6c 65 74 65 45 6e 76 | 69 72 6f 6e 6d 65 6e 74 |eleteEnv|ironment|
|00001e20| 4e 6f 69 73 69 6c 79 27 | 20 69 73 20 66 61 6c 73 |Noisily'| is fals|
|00001e30| 65 3b 20 6f 74 68 65 72 | 77 69 73 65 20 0d 23 20 |e; other|wise .# |
|00001e40| 74 68 65 20 75 73 65 72 | 20 69 73 20 70 72 6f 6d |the user| is prom|
|00001e50| 70 74 65 64 20 66 6f 72 | 20 64 69 72 65 63 74 69 |pted for| directi|
|00001e60| 6f 6e 73 2e 20 20 52 65 | 74 75 72 6e 73 20 74 72 |ons. Re|turns tr|
|00001e70| 75 65 20 69 66 20 74 68 | 65 20 0d 23 20 65 6e 76 |ue if th|e .# env|
|00001e80| 69 72 6f 6e 6d 65 6e 74 | 20 69 73 20 75 6c 74 69 |ironment| is ulti|
|00001e90| 6d 61 74 65 6c 79 20 69 | 6e 73 65 72 74 65 64 2c |mately i|nserted,|
|00001ea0| 20 61 6e 64 20 66 61 6c | 73 65 20 69 66 20 74 68 | and fal|se if th|
|00001eb0| 65 20 75 73 65 72 20 63 | 61 6e 63 65 6c 73 20 0d |e user c|ancels .|
|00001ec0| 23 20 74 68 65 20 6f 70 | 65 72 61 74 69 6f 6e 2e |# the op|eration.|
|00001ed0| 0d 70 72 6f 63 20 69 6e | 73 65 72 74 45 6e 76 69 |.proc in|sertEnvi|
|00001ee0| 72 6f 6e 6d 65 6e 74 20 | 7b 65 6e 76 4e 61 6d 65 |ronment |{envName|
|00001ef0| 20 65 6e 76 41 72 67 20 | 65 6e 76 42 6f 64 79 7d | envArg |envBody}|
|00001f00| 20 7b 0d 09 67 6c 6f 62 | 61 6c 20 64 65 6c 65 74 | {..glob|al delet|
|00001f10| 65 45 6e 76 69 72 6f 6e | 6d 65 6e 74 4e 6f 69 73 |eEnviron|mentNois|
|00001f20| 69 6c 79 0d 09 69 66 20 | 7b 5b 69 73 53 65 6c 65 |ily..if |{[isSele|
|00001f30| 63 74 69 6f 6e 5d 7d 20 | 74 68 65 6e 20 7b 0d 09 |ction]} |then {..|
|00001f40| 09 69 66 20 7b 24 64 65 | 6c 65 74 65 45 6e 76 69 |.if {$de|leteEnvi|
|00001f50| 72 6f 6e 6d 65 6e 74 4e | 6f 69 73 69 6c 79 7d 20 |ronmentN|oisily} |
|00001f60| 74 68 65 6e 20 7b 0d 09 | 09 09 63 61 73 65 20 5b |then {..|..case [|
|00001f70| 61 73 6b 79 65 73 6e 6f | 20 2d 63 20 22 44 65 6c |askyesno| -c "Del|
|00001f80| 65 74 65 20 73 65 6c 65 | 63 74 69 6f 6e 3f 22 5d |ete sele|ction?"]|
|00001f90| 20 69 6e 20 7b 0d 09 09 | 09 09 22 79 65 73 22 20 | in {...|.."yes" |
|00001fa0| 7b 7d 0d 09 09 09 09 22 | 6e 6f 22 20 7b 62 61 63 |{}....."|no" {bac|
|00001fb0| 6b 77 61 72 64 43 68 61 | 72 7d 0d 09 09 09 09 22 |kwardCha|r}....."|
|00001fc0| 63 61 6e 63 65 6c 22 20 | 7b 72 65 74 75 72 6e 20 |cancel" |{return |
|00001fd0| 30 7d 0d 09 09 09 7d 0d | 09 09 7d 0d 09 7d 0d 09 |0}....}.|..}..}..|
|00001fe0| 73 65 74 20 73 74 61 72 | 74 20 5b 67 65 74 50 6f |set star|t [getPo|
|00001ff0| 73 5d 0d 09 73 65 74 20 | 65 6e 64 20 5b 73 65 6c |s]..set |end [sel|
|00002000| 45 6e 64 5d 0d 09 73 65 | 74 20 62 6f 64 79 20 5b |End]..se|t body [|
|00002010| 73 68 69 66 74 54 65 78 | 74 52 69 67 68 74 20 24 |shiftTex|tRight $|
|00002020| 65 6e 76 42 6f 64 79 20 | 5b 67 65 74 49 6e 64 65 |envBody |[getInde|
|00002030| 6e 74 61 74 69 6f 6e 20 | 24 73 74 61 72 74 5d 5d |ntation |$start]]|
|00002040| 0d 09 72 65 70 6c 61 63 | 65 54 65 78 74 20 24 73 |..replac|eText $s|
|00002050| 74 61 72 74 20 24 65 6e | 64 20 5b 62 75 69 6c 64 |tart $en|d [build|
|00002060| 45 6e 76 69 72 6f 6e 6d | 65 6e 74 20 24 65 6e 76 |Environm|ent $env|
|00002070| 4e 61 6d 65 20 24 65 6e | 76 41 72 67 20 24 62 6f |Name $en|vArg $bo|
|00002080| 64 79 20 22 a5 22 5d 0d | 09 67 6f 74 6f 20 24 73 |dy "."].|.goto $s|
|00002090| 74 61 72 74 0d 09 72 65 | 74 75 72 6e 20 31 0d 7d |tart..re|turn 1.}|
|000020a0| 0d 0d 23 20 49 6e 73 65 | 72 74 73 20 61 6e 20 65 |..# Inse|rts an e|
|000020b0| 6e 76 69 72 6f 6e 6d 65 | 6e 74 20 77 69 74 68 20 |nvironme|nt with |
|000020c0| 74 68 65 20 67 69 76 65 | 6e 20 6e 61 6d 65 2c 20 |the give|n name, |
|000020d0| 61 72 67 75 6d 65 6e 74 | 2c 20 61 6e 64 20 62 6f |argument|, and bo|
|000020e0| 64 79 20 61 74 20 0d 23 | 20 74 68 65 20 69 6e 73 |dy at .#| the ins|
|000020f0| 65 72 74 69 6f 6e 20 70 | 6f 69 6e 74 2e 20 20 50 |ertion p|oint. P|
|00002100| 6f 73 69 74 69 6f 6e 73 | 20 74 68 65 20 63 75 72 |ositions| the cur|
|00002110| 73 6f 72 20 61 74 20 74 | 68 65 20 62 65 67 69 6e |sor at t|he begin|
|00002120| 6e 69 6e 67 20 6f 66 20 | 0d 23 20 74 68 65 20 65 |ning of |.# the e|
|00002130| 6e 76 69 72 6f 6e 6d 65 | 6e 74 2c 20 6c 65 61 76 |nvironme|nt, leav|
|00002140| 69 6e 67 20 61 6e 79 20 | 73 75 62 73 65 71 75 65 |ing any |subseque|
|00002150| 6e 74 20 61 63 74 69 6f | 6e 20 74 6f 20 74 68 65 |nt actio|n to the|
|00002160| 20 63 61 6c 6c 69 6e 67 | 20 0d 23 20 70 72 6f 63 | calling| .# proc|
|00002170| 65 64 75 72 65 2e 20 20 | 49 66 20 74 68 65 72 65 |edure. |If there|
|00002180| 20 69 73 20 63 75 72 72 | 65 6e 74 6c 79 20 61 20 | is curr|ently a |
|00002190| 73 65 6c 65 63 74 69 6f | 6e 2c 20 63 75 74 20 61 |selectio|n, cut a|
|000021a0| 6e 64 20 70 61 73 74 65 | 20 69 74 20 0d 23 20 69 |nd paste| it .# i|
|000021b0| 6e 74 6f 20 74 68 65 20 | 62 6f 64 79 20 6f 66 20 |nto the |body of |
|000021c0| 74 68 65 20 6e 65 77 20 | 65 6e 76 69 72 6f 6e 6d |the new |environm|
|000021d0| 65 6e 74 2c 20 6d 61 69 | 6e 74 61 69 6e 69 6e 67 |ent, mai|ntaining|
|000021e0| 20 70 72 6f 70 65 72 20 | 0d 23 20 69 6e 64 65 6e | proper |.# inden|
|000021f0| 74 61 74 69 6f 6e 3b 20 | 6f 74 68 65 72 77 69 73 |tation; |otherwis|
|00002200| 65 2c 20 69 6e 73 65 72 | 74 20 61 20 74 61 62 20 |e, inser|t a tab |
|00002210| 73 74 6f 70 20 69 6e 74 | 6f 20 74 68 65 20 62 6f |stop int|o the bo|
|00002220| 64 79 20 6f 66 20 74 68 | 65 0d 23 20 65 6e 76 69 |dy of th|e.# envi|
|00002230| 72 6f 6e 6d 65 6e 74 2e | 20 20 52 65 74 75 72 6e |ronment.| Return|
|00002240| 73 20 74 72 75 65 20 69 | 66 20 74 68 65 72 65 20 |s true i|f there |
|00002250| 69 73 20 61 20 73 65 6c | 65 63 74 69 6f 6e 2c 20 |is a sel|ection, |
|00002260| 61 6e 64 20 66 61 6c 73 | 65 20 0d 23 20 6f 74 68 |and fals|e .# oth|
|00002270| 65 72 77 69 73 65 2e 0d | 70 72 6f 63 20 77 72 61 |erwise..|proc wra|
|00002280| 70 45 6e 76 69 72 6f 6e | 6d 65 6e 74 20 7b 65 6e |pEnviron|ment {en|
|00002290| 76 4e 61 6d 65 20 65 6e | 76 41 72 67 20 65 6e 76 |vName en|vArg env|
|000022a0| 42 6f 64 79 7d 20 7b 0d | 09 73 65 74 20 73 74 61 |Body} {.|.set sta|
|000022b0| 72 74 20 5b 67 65 74 50 | 6f 73 5d 0d 09 73 65 74 |rt [getP|os]..set|
|000022c0| 20 65 6e 64 20 5b 73 65 | 6c 45 6e 64 5d 0d 09 73 | end [se|lEnd]..s|
|000022d0| 65 74 20 69 6e 64 65 6e | 74 20 5b 67 65 74 49 6e |et inden|t [getIn|
|000022e0| 64 65 6e 74 61 74 69 6f | 6e 20 24 73 74 61 72 74 |dentatio|n $start|
|000022f0| 5d 0d 09 69 66 20 7b 5b | 69 73 53 65 6c 65 63 74 |]..if {[|isSelect|
|00002300| 69 6f 6e 5d 7d 20 74 68 | 65 6e 20 7b 0d 09 09 73 |ion]} th|en {...s|
|00002310| 65 74 20 74 65 78 74 20 | 5b 67 65 74 53 65 6c 65 |et text |[getSele|
|00002320| 63 74 5d 0d 09 09 73 65 | 74 20 74 65 78 74 4c 65 |ct]...se|t textLe|
|00002330| 6e 20 5b 73 74 72 69 6e | 67 20 6c 65 6e 67 74 68 |n [strin|g length|
|00002340| 20 24 74 65 78 74 5d 0d | 09 09 69 66 20 7b 5b 73 | $text].|..if {[s|
|00002350| 74 72 69 6e 67 20 69 6e | 64 65 78 20 24 74 65 78 |tring in|dex $tex|
|00002360| 74 20 5b 65 78 70 72 20 | 24 74 65 78 74 4c 65 6e |t [expr |$textLen|
|00002370| 2d 31 5d 5d 20 21 3d 20 | 22 5c 72 22 7d 20 74 68 |-1]] != |"\r"} th|
|00002380| 65 6e 20 7b 0d 09 09 09 | 61 70 70 65 6e 64 20 74 |en {....|append t|
|00002390| 65 78 74 20 22 5c 72 22 | 0d 09 09 7d 0d 09 09 69 |ext "\r"|...}...i|
|000023a0| 66 20 7b 24 73 74 61 72 | 74 20 3d 3d 20 5b 6c 69 |f {$star|t == [li|
|000023b0| 6e 65 53 74 61 72 74 20 | 24 73 74 61 72 74 5d 7d |neStart |$start]}|
|000023c0| 20 74 68 65 6e 20 7b 0d | 09 09 09 73 65 74 20 62 | then {.|...set b|
|000023d0| 6f 64 79 20 5b 73 68 69 | 66 74 54 65 78 74 52 69 |ody [shi|ftTextRi|
|000023e0| 67 68 74 20 24 74 65 78 | 74 20 5c 74 5d 0d 09 09 |ght $tex|t \t]...|
|000023f0| 7d 20 65 6c 73 65 20 7b | 0d 09 09 09 73 65 74 20 |} else {|....set |
|00002400| 62 6f 64 79 20 22 24 69 | 6e 64 65 6e 74 5b 73 68 |body "$i|ndent[sh|
|00002410| 69 66 74 54 65 78 74 52 | 69 67 68 74 20 24 74 65 |iftTextR|ight $te|
|00002420| 78 74 20 5c 74 5d 22 0d | 09 09 7d 0d 09 09 61 70 |xt \t]".|..}...ap|
|00002430| 70 65 6e 64 20 62 6f 64 | 79 20 5b 73 68 69 66 74 |pend bod|y [shift|
|00002440| 54 65 78 74 52 69 67 68 | 74 20 24 65 6e 76 42 6f |TextRigh|t $envBo|
|00002450| 64 79 20 24 69 6e 64 65 | 6e 74 5d 0d 09 09 73 65 |dy $inde|nt]...se|
|00002460| 74 20 65 6e 76 69 72 6f | 6e 6d 65 6e 74 20 5b 62 |t enviro|nment [b|
|00002470| 75 69 6c 64 45 6e 76 69 | 72 6f 6e 6d 65 6e 74 20 |uildEnvi|ronment |
|00002480| 24 65 6e 76 4e 61 6d 65 | 20 24 65 6e 76 41 72 67 |$envName| $envArg|
|00002490| 20 24 62 6f 64 79 20 22 | a5 22 5d 0d 09 09 73 65 | $body "|."]...se|
|000024a0| 74 20 72 65 74 75 72 6e | 46 6c 61 67 20 31 0d 09 |t return|Flag 1..|
|000024b0| 7d 20 65 6c 73 65 20 7b | 0d 09 09 61 70 70 65 6e |} else {|...appen|
|000024c0| 64 20 62 6f 64 79 20 22 | 24 69 6e 64 65 6e 74 5c |d body "|$indent\|
|000024d0| 74 a5 5c 72 22 20 5b 73 | 68 69 66 74 54 65 78 74 |t.\r" [s|hiftText|
|000024e0| 52 69 67 68 74 20 24 65 | 6e 76 42 6f 64 79 20 24 |Right $e|nvBody $|
|000024f0| 69 6e 64 65 6e 74 5d 0d | 09 09 73 65 74 20 65 6e |indent].|..set en|
|00002500| 76 69 72 6f 6e 6d 65 6e | 74 20 5b 62 75 69 6c 64 |vironmen|t [build|
|00002510| 45 6e 76 69 72 6f 6e 6d | 65 6e 74 20 24 65 6e 76 |Environm|ent $env|
|00002520| 4e 61 6d 65 20 24 65 6e | 76 41 72 67 20 24 62 6f |Name $en|vArg $bo|
|00002530| 64 79 20 22 a5 22 5d 0d | 09 09 73 65 74 20 72 65 |dy "."].|..set re|
|00002540| 74 75 72 6e 46 6c 61 67 | 20 30 0d 09 7d 0d 09 72 |turnFlag| 0..}..r|
|00002550| 65 70 6c 61 63 65 54 65 | 78 74 20 24 73 74 61 72 |eplaceTe|xt $star|
|00002560| 74 20 24 65 6e 64 20 24 | 65 6e 76 69 72 6f 6e 6d |t $end $|environm|
|00002570| 65 6e 74 0d 09 67 6f 74 | 6f 20 24 73 74 61 72 74 |ent..got|o $start|
|00002580| 0d 09 72 65 74 75 72 6e | 20 24 72 65 74 75 72 6e |..return| $return|
|00002590| 46 6c 61 67 0d 7d 0d 0d | 23 20 41 20 67 65 6e 65 |Flag.}..|# A gene|
|000025a0| 72 69 63 20 63 61 6c 6c | 20 74 6f 20 27 77 72 61 |ric call| to 'wra|
|000025b0| 70 45 6e 76 69 72 6f 6e | 6d 65 6e 74 27 20 75 73 |pEnviron|ment' us|
|000025c0| 65 64 20 74 68 72 6f 75 | 67 68 6f 75 74 20 6c 61 |ed throu|ghout la|
|000025d0| 74 65 78 2e 74 63 6c 3a | 0d 70 72 6f 63 20 64 6f |tex.tcl:|.proc do|
|000025e0| 57 72 61 70 45 6e 76 69 | 72 6f 6e 6d 65 6e 74 20 |WrapEnvi|ronment |
|000025f0| 7b 65 6e 76 4e 61 6d 65 | 7d 20 7b 0d 09 69 66 20 |{envName|} {..if |
|00002600| 7b 5b 77 72 61 70 45 6e | 76 69 72 6f 6e 6d 65 6e |{[wrapEn|vironmen|
|00002610| 74 20 24 65 6e 76 4e 61 | 6d 65 20 22 22 20 22 22 |t $envNa|me "" ""|
|00002620| 5d 7d 20 74 68 65 6e 20 | 7b 0d 09 09 73 65 74 20 |]} then |{...set |
|00002630| 6d 73 67 54 65 78 74 20 | 22 73 65 6c 65 63 74 69 |msgText |"selecti|
|00002640| 6f 6e 20 77 72 61 70 70 | 65 64 22 0d 09 7d 20 65 |on wrapp|ed"..} e|
|00002650| 6c 73 65 20 7b 0d 09 09 | 73 65 74 20 6d 73 67 54 |lse {...|set msgT|
|00002660| 65 78 74 20 22 65 6e 74 | 65 72 20 62 6f 64 79 20 |ext "ent|er body |
|00002670| 6f 66 20 24 65 6e 76 4e | 61 6d 65 20 65 6e 76 69 |of $envN|ame envi|
|00002680| 72 6f 6e 6d 65 6e 74 22 | 0d 09 7d 0d 09 6e 65 78 |ronment"|..}..nex|
|00002690| 74 54 61 62 53 74 6f 70 | 0d 09 6d 65 73 73 61 67 |tTabStop|..messag|
|000026a0| 65 20 24 6d 73 67 54 65 | 78 74 0d 7d 0d 0d 23 20 |e $msgTe|xt.}..# |
|000026b0| 49 6e 73 65 72 74 73 20 | 61 20 73 74 72 75 63 74 |Inserts |a struct|
|000026c0| 75 72 65 64 20 64 6f 63 | 75 6d 65 6e 74 20 74 65 |ured doc|ument te|
|000026d0| 6d 70 6c 61 74 65 20 61 | 74 20 74 68 65 20 69 6e |mplate a|t the in|
|000026e0| 73 65 72 74 69 6f 6e 20 | 70 6f 69 6e 74 2e 20 20 |sertion |point. |
|000026f0| 0d 23 20 54 68 72 65 65 | 20 61 72 67 75 6d 65 6e |.# Three| argumen|
|00002700| 74 73 20 61 72 65 20 72 | 65 71 75 69 72 65 64 3a |ts are r|equired:|
|00002710| 20 20 74 68 65 20 63 6c | 61 73 73 20 6e 61 6d 65 | the cl|ass name|
|00002720| 20 6f 66 20 74 68 65 20 | 64 6f 63 75 6d 65 6e 74 | of the |document|
|00002730| 2c 20 61 20 0d 23 20 70 | 72 65 61 6d 62 6c 65 20 |, a .# p|reamble |
|00002740| 73 74 72 69 6e 67 2c 20 | 61 6e 64 20 61 20 73 74 |string, |and a st|
|00002750| 72 69 6e 67 20 63 6f 6e | 74 61 69 6e 69 6e 67 20 |ring con|taining |
|00002760| 74 68 65 20 62 6f 64 79 | 20 6f 66 20 74 68 65 20 |the body| of the |
|00002770| 64 6f 63 75 6d 65 6e 74 | 2e 20 20 0d 23 20 49 66 |document|. .# If|
|00002780| 20 74 68 65 20 70 72 65 | 61 6d 62 6c 65 20 69 73 | the pre|amble is|
|00002790| 20 6e 75 6c 6c 2c 20 61 | 20 67 65 6e 65 72 69 63 | null, a| generic|
|000027a0| 20 5c 75 73 65 70 61 63 | 6b 61 67 65 20 73 74 61 | \usepac|kage sta|
|000027b0| 74 65 6d 65 6e 74 20 69 | 73 20 0d 23 20 69 6e 73 |tement i|s .# ins|
|000027c0| 65 72 74 65 64 3b 20 6f | 74 68 65 72 77 69 73 65 |erted; o|therwise|
|000027d0| 2c 20 74 68 65 20 70 72 | 65 61 6d 62 6c 65 20 69 |, the pr|eamble i|
|000027e0| 73 20 69 6e 73 65 72 74 | 65 64 20 61 73 20 69 73 |s insert|ed as is|
|000027f0| 2e 20 20 54 68 69 73 20 | 72 6f 75 74 69 6e 65 20 |. This |routine |
|00002800| 0d 23 20 64 6f 65 73 20 | 61 62 73 6f 6c 75 74 65 |.# does |absolute|
|00002810| 6c 79 20 6e 6f 20 65 72 | 72 6f 72 2d 63 68 65 63 |ly no er|ror-chec|
|00002820| 6b 69 6e 67 20 28 74 68 | 69 73 20 69 73 20 74 6f |king (th|is is to|
|00002830| 74 61 6c 6c 79 20 6c 65 | 66 74 20 75 70 20 74 6f |tally le|ft up to|
|00002840| 20 74 68 65 20 0d 23 20 | 63 61 6c 6c 69 6e 67 20 | the .# |calling |
|00002850| 70 72 6f 63 65 64 75 72 | 65 29 20 61 6e 64 20 72 |procedur|e) and r|
|00002860| 65 74 75 72 6e 73 20 6e | 6f 74 68 69 6e 67 2e 0d |eturns n|othing..|
|00002870| 70 72 6f 63 20 69 6e 73 | 65 72 74 44 6f 63 75 6d |proc ins|ertDocum|
|00002880| 65 6e 74 20 7b 63 6c 61 | 73 73 4e 61 6d 65 20 70 |ent {cla|ssName p|
|00002890| 72 65 61 6d 62 6c 65 20 | 64 6f 63 42 6f 64 79 7d |reamble |docBody}|
|000028a0| 20 7b 0d 09 73 65 74 20 | 64 6f 63 53 74 72 20 22 | {..set |docStr "|
|000028b0| 5c 5c 64 6f 63 75 6d 65 | 6e 74 63 6c 61 73 73 5c |\\docume|ntclass\|
|000028c0| 5b a5 5c 5d 7b 24 63 6c | 61 73 73 4e 61 6d 65 7d |[.\]{$cl|assName}|
|000028d0| 5c 72 22 0d 09 69 66 20 | 7b 24 70 72 65 61 6d 62 |\r"..if |{$preamb|
|000028e0| 6c 65 20 3d 3d 20 22 22 | 7d 20 74 68 65 6e 20 7b |le == ""|} then {|
|000028f0| 0d 09 09 61 70 70 65 6e | 64 20 64 6f 63 53 74 72 |...appen|d docStr|
|00002900| 20 22 5c 5c 75 73 65 70 | 61 63 6b 61 67 65 7b a5 | "\\usep|ackage{.|
|00002910| 7d 5c 72 5c 72 a5 5c 72 | 5c 72 22 0d 09 7d 20 65 |}\r\r.\r|\r"..} e|
|00002920| 6c 73 65 20 7b 0d 09 09 | 61 70 70 65 6e 64 20 64 |lse {...|append d|
|00002930| 6f 63 53 74 72 20 24 70 | 72 65 61 6d 62 6c 65 0d |ocStr $p|reamble.|
|00002940| 09 7d 0d 09 61 70 70 65 | 6e 64 20 64 6f 63 53 74 |.}..appe|nd docSt|
|00002950| 72 20 5b 62 75 69 6c 64 | 45 6e 76 69 72 6f 6e 6d |r [build|Environm|
|00002960| 65 6e 74 20 22 64 6f 63 | 75 6d 65 6e 74 22 20 22 |ent "doc|ument" "|
|00002970| 22 20 24 64 6f 63 42 6f | 64 79 20 22 5c 72 22 5d |" $docBo|dy "\r"]|
|00002980| 0d 09 73 65 74 20 73 74 | 61 72 74 20 5b 67 65 74 |..set st|art [get|
|00002990| 50 6f 73 5d 0d 09 73 65 | 74 20 65 6e 64 20 5b 73 |Pos]..se|t end [s|
|000029a0| 65 6c 45 6e 64 5d 0d 09 | 72 65 70 6c 61 63 65 54 |elEnd]..|replaceT|
|000029b0| 65 78 74 20 24 73 74 61 | 72 74 20 24 65 6e 64 20 |ext $sta|rt $end |
|000029c0| 24 64 6f 63 53 74 72 0d | 09 67 6f 74 6f 20 24 73 |$docStr.|.goto $s|
|000029d0| 74 61 72 74 0d 09 72 65 | 74 75 72 6e 0d 7d 0d 0d |tart..re|turn.}..|
|000029e0| 23 20 49 6e 73 65 72 74 | 73 20 61 20 64 6f 63 75 |# Insert|s a docu|
|000029f0| 6d 65 6e 74 20 74 65 6d | 70 6c 61 74 65 20 61 74 |ment tem|plate at|
|00002a00| 20 74 68 65 20 69 6e 73 | 65 72 74 69 6f 6e 20 70 | the ins|ertion p|
|00002a10| 6f 69 6e 74 20 67 69 76 | 65 6e 20 74 68 65 20 0d |oint giv|en the .|
|00002a20| 23 20 63 6c 61 73 73 20 | 6e 61 6d 65 20 6f 66 20 |# class |name of |
|00002a30| 74 68 65 20 64 6f 63 75 | 6d 65 6e 74 20 74 6f 20 |the docu|ment to |
|00002a40| 62 65 20 69 6e 73 65 72 | 74 65 64 2e 20 20 49 66 |be inser|ted. If|
|00002a50| 20 41 4c 4c 20 6f 66 20 | 74 68 65 20 63 75 72 72 | ALL of |the curr|
|00002a60| 65 6e 74 0d 23 20 64 6f | 63 75 6d 65 6e 74 20 69 |ent.# do|cument i|
|00002a70| 73 20 73 65 6c 65 63 74 | 65 64 2c 20 74 68 65 6e |s select|ed, then|
|00002a80| 20 74 68 65 20 72 6f 75 | 74 69 6e 65 20 77 72 61 | the rou|tine wra|
|00002a90| 70 73 20 74 68 65 20 74 | 65 78 74 20 69 6e 73 69 |ps the t|ext insi|
|00002aa0| 64 65 20 61 0d 23 20 67 | 65 6e 65 72 69 63 20 64 |de a.# g|eneric d|
|00002ab0| 6f 63 75 6d 65 6e 74 20 | 74 65 6d 70 6c 61 74 65 |ocument |template|
|00002ac0| 2e 20 20 49 66 20 74 68 | 65 20 66 69 6c 65 20 69 |. If th|e file i|
|00002ad0| 73 20 65 6d 70 74 79 2c | 20 61 20 62 75 6c 6c 65 |s empty,| a bulle|
|00002ae0| 74 20 69 73 20 0d 23 20 | 69 6e 73 65 72 74 65 64 |t is .# |inserted|
|00002af0| 20 69 6e 20 70 6c 61 63 | 65 20 6f 66 20 74 68 65 | in plac|e of the|
|00002b00| 20 64 6f 63 75 6d 65 6e | 74 20 62 6f 64 79 2e 20 | documen|t body. |
|00002b10| 20 49 66 20 6e 65 69 74 | 68 65 72 20 6f 66 20 74 | If neit|her of t|
|00002b20| 68 65 73 65 20 0d 23 20 | 63 6f 6e 64 69 74 69 6f |hese .# |conditio|
|00002b30| 6e 73 20 69 73 20 74 72 | 75 65 2c 20 61 6e 20 61 |ns is tr|ue, an a|
|00002b40| 6c 65 72 74 20 69 73 20 | 64 69 73 70 6c 61 79 65 |lert is |displaye|
|00002b50| 64 2c 20 61 6e 64 20 6e | 6f 20 61 63 74 69 6f 6e |d, and n|o action|
|00002b60| 20 69 73 20 74 61 6b 65 | 6e 2e 20 20 0d 23 20 52 | is take|n. .# R|
|00002b70| 65 74 75 72 6e 73 20 74 | 72 75 65 20 69 66 20 77 |eturns t|rue if w|
|00002b80| 72 61 70 70 69 6e 67 20 | 6f 63 63 75 72 73 2c 20 |rapping |occurs, |
|00002b90| 61 6e 64 20 66 61 6c 73 | 65 20 6f 74 68 65 72 77 |and fals|e otherw|
|00002ba0| 69 73 65 2e 0d 70 72 6f | 63 20 77 72 61 70 44 6f |ise..pro|c wrapDo|
|00002bb0| 63 75 6d 65 6e 74 20 7b | 63 6c 61 73 73 4e 61 6d |cument {|classNam|
|00002bc0| 65 7d 20 7b 0d 09 69 66 | 20 7b 5b 69 73 45 6d 70 |e} {..if| {[isEmp|
|00002bd0| 74 79 46 69 6c 65 5d 7d | 20 74 68 65 6e 20 7b 0d |tyFile]}| then {.|
|00002be0| 09 09 61 70 70 65 6e 64 | 20 62 6f 64 79 20 22 5c |..append| body "\|
|00002bf0| 72 a5 5c 72 5c 72 22 0d | 09 09 73 65 74 20 72 65 |r.\r\r".|..set re|
|00002c00| 74 75 72 6e 46 6c 61 67 | 20 30 0d 09 7d 20 65 6c |turnFlag| 0..} el|
|00002c10| 73 65 20 7b 0d 09 09 69 | 66 20 7b 5b 69 73 44 6f |se {...i|f {[isDo|
|00002c20| 63 75 6d 65 6e 74 53 65 | 6c 65 63 74 65 64 5d 7d |cumentSe|lected]}|
|00002c30| 20 74 68 65 6e 20 7b 0d | 09 09 09 73 65 74 20 74 | then {.|...set t|
|00002c40| 65 78 74 20 5b 67 65 74 | 53 65 6c 65 63 74 5d 0d |ext [get|Select].|
|00002c50| 09 09 09 61 70 70 65 6e | 64 20 62 6f 64 79 20 22 |...appen|d body "|
|00002c60| 5c 72 24 74 65 78 74 5c | 72 22 0d 09 09 09 73 65 |\r$text\|r"....se|
|00002c70| 74 20 72 65 74 75 72 6e | 46 6c 61 67 20 31 0d 09 |t return|Flag 1..|
|00002c80| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 09 61 6c 65 |.} else |{....ale|
|00002c90| 72 74 6e 6f 74 65 20 22 | 6e 6f 6e 65 6d 70 74 79 |rtnote "|nonempty|
|00002ca0| 20 66 69 6c 65 3a 20 20 | 64 65 6c 65 74 65 20 74 | file: |delete t|
|00002cb0| 65 78 74 20 6f 72 20 5c | 27 53 65 6c 65 63 74 20 |ext or \|'Select |
|00002cc0| 41 6c 6c 5c 27 5c 0d 09 | 09 09 09 66 72 6f 6d 20 |All\'\..|...from |
|00002cd0| 74 68 65 20 45 64 69 74 | 20 6d 65 6e 75 22 0d 09 |the Edit| menu"..|
|00002ce0| 09 09 72 65 74 75 72 6e | 20 30 0d 09 09 7d 0d 09 |..return| 0...}..|
|00002cf0| 7d 0d 09 73 65 74 20 64 | 6f 63 53 74 72 20 22 5c |}..set d|ocStr "\|
|00002d00| 5c 64 6f 63 75 6d 65 6e | 74 63 6c 61 73 73 5c 5b |\documen|tclass\[|
|00002d10| a5 5c 5d 7b 24 63 6c 61 | 73 73 4e 61 6d 65 7d 5c |.\]{$cla|ssName}\|
|00002d20| 72 22 0d 09 61 70 70 65 | 6e 64 20 64 6f 63 53 74 |r"..appe|nd docSt|
|00002d30| 72 20 22 5c 5c 75 73 65 | 70 61 63 6b 61 67 65 7b |r "\\use|package{|
|00002d40| a5 7d 5c 72 5c 72 a5 5c | 72 5c 72 22 0d 09 61 70 |.}\r\r.\|r\r"..ap|
|00002d50| 70 65 6e 64 20 64 6f 63 | 53 74 72 20 5b 62 75 69 |pend doc|Str [bui|
|00002d60| 6c 64 45 6e 76 69 72 6f | 6e 6d 65 6e 74 20 22 64 |ldEnviro|nment "d|
|00002d70| 6f 63 75 6d 65 6e 74 22 | 20 22 22 20 24 62 6f 64 |ocument"| "" $bod|
|00002d80| 79 20 22 5c 72 22 5d 0d | 09 73 65 74 20 73 74 61 |y "\r"].|.set sta|
|00002d90| 72 74 20 5b 67 65 74 50 | 6f 73 5d 0d 09 73 65 74 |rt [getP|os]..set|
|00002da0| 20 65 6e 64 20 5b 73 65 | 6c 45 6e 64 5d 0d 09 72 | end [se|lEnd]..r|
|00002db0| 65 70 6c 61 63 65 54 65 | 78 74 20 24 73 74 61 72 |eplaceTe|xt $star|
|00002dc0| 74 20 24 65 6e 64 20 24 | 64 6f 63 53 74 72 0d 09 |t $end $|docStr..|
|00002dd0| 67 6f 74 6f 20 24 73 74 | 61 72 74 0d 09 6e 65 78 |goto $st|art..nex|
|00002de0| 74 54 61 62 53 74 6f 70 | 0d 09 6d 65 73 73 61 67 |tTabStop|..messag|
|00002df0| 65 20 22 65 6e 74 65 72 | 20 73 74 79 6c 65 20 28 |e "enter| style (|
|00002e00| 6f 72 20 6c 65 61 76 65 | 20 62 6c 61 6e 6b 29 22 |or leave| blank)"|
|00002e10| 0d 09 72 65 74 75 72 6e | 20 24 72 65 74 75 72 6e |..return| $return|
|00002e20| 46 6c 61 67 0d 7d 0d 0d | 23 2d 2d 2d 2d 2d 2d 2d |Flag.}..|#-------|
|00002e30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e70| 2d 2d 2d 0d 23 20 4d 69 | 73 63 3a 0d 23 2d 2d 2d |---.# Mi|sc:.#---|
|00002e80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ec0| 2d 2d 2d 2d 2d 2d 2d 0d | 0d 23 20 43 68 65 63 6b |-------.|.# Check|
|00002ed0| 73 20 74 6f 20 73 65 65 | 20 69 66 20 74 68 65 72 |s to see| if ther|
|00002ee0| 65 27 73 20 61 20 63 75 | 72 72 65 6e 74 20 73 65 |e's a cu|rrent se|
|00002ef0| 6c 65 63 74 69 6f 6e 2e | 0d 70 72 6f 63 20 69 73 |lection.|.proc is|
|00002f00| 53 65 6c 65 63 74 69 6f | 6e 20 7b 7d 20 7b 0d 09 |Selectio|n {} {..|
|00002f10| 72 65 74 75 72 6e 20 5b | 73 74 72 69 6e 67 20 6c |return [|string l|
|00002f20| 65 6e 67 74 68 20 5b 67 | 65 74 53 65 6c 65 63 74 |ength [g|etSelect|
|00002f30| 5d 5d 0d 7d 0d 0d 23 20 | 43 68 65 63 6b 73 20 74 |]].}..# |Checks t|
|00002f40| 6f 20 73 65 65 20 69 66 | 20 74 68 65 20 63 75 72 |o see if| the cur|
|00002f50| 72 65 6e 74 20 77 69 6e | 64 6f 77 20 69 73 20 65 |rent win|dow is e|
|00002f60| 6d 70 74 79 2c 20 73 61 | 6e 73 20 77 68 69 74 65 |mpty, sa|ns white|
|00002f70| 73 70 61 63 65 2e 0d 70 | 72 6f 63 20 69 73 45 6d |space..p|roc isEm|
|00002f80| 70 74 79 46 69 6c 65 20 | 7b 7d 20 7b 0d 09 72 65 |ptyFile |{} {..re|
|00002f90| 74 75 72 6e 20 5b 69 73 | 57 68 69 74 65 73 70 61 |turn [is|Whitespa|
|00002fa0| 63 65 20 5b 67 65 74 54 | 65 78 74 20 30 20 5b 6d |ce [getT|ext 0 [m|
|00002fb0| 61 78 50 6f 73 5d 5d 5d | 0d 7d 0d 0d 23 20 49 66 |axPos]]]|.}..# If|
|00002fc0| 20 74 68 65 72 65 20 69 | 73 20 61 20 73 65 6c 65 | there i|s a sele|
|00002fd0| 63 74 69 6f 6e 2c 20 6d | 61 6b 65 20 73 75 72 65 |ction, m|ake sure|
|00002fe0| 20 69 74 27 73 20 75 70 | 70 65 72 63 61 73 65 2e | it's up|percase.|
|00002ff0| 20 20 4f 74 68 65 72 77 | 69 73 65 2c 20 0d 23 20 | Otherw|ise, .# |
|00003000| 63 68 65 63 6b 20 74 6f | 20 73 65 65 20 69 66 20 |check to| see if |
|00003010| 74 68 65 20 63 68 61 72 | 61 63 74 65 72 20 61 66 |the char|acter af|
|00003020| 74 65 72 20 74 68 65 20 | 69 6e 73 65 72 74 69 6f |ter the |insertio|
|00003030| 6e 20 70 6f 69 6e 74 20 | 69 73 20 75 70 70 65 72 |n point |is upper|
|00003040| 63 61 73 65 2e 0d 70 72 | 6f 63 20 69 73 55 70 70 |case..pr|oc isUpp|
|00003050| 65 72 63 61 73 65 20 7b | 7d 20 7b 0d 09 69 66 20 |ercase {|} {..if |
|00003060| 7b 5b 69 73 53 65 6c 65 | 63 74 69 6f 6e 5d 7d 20 |{[isSele|ction]} |
|00003070| 74 68 65 6e 20 7b 0d 09 | 09 73 65 74 20 74 65 78 |then {..|.set tex|
|00003080| 74 20 5b 67 65 74 53 65 | 6c 65 63 74 5d 0d 09 7d |t [getSe|lect]..}|
|00003090| 20 65 6c 73 65 20 7b 0d | 09 09 73 65 74 20 74 65 | else {.|..set te|
|000030a0| 78 74 20 5b 6c 6f 6f 6b | 41 74 20 5b 67 65 74 50 |xt [look|At [getP|
|000030b0| 6f 73 5d 5d 0d 09 7d 0d | 09 72 65 74 75 72 6e 20 |os]]..}.|.return |
|000030c0| 5b 65 78 70 72 20 7b 5b | 73 74 72 69 6e 67 20 74 |[expr {[|string t|
|000030d0| 6f 75 70 70 65 72 20 24 | 74 65 78 74 5d 20 3d 3d |oupper $|text] ==|
|000030e0| 20 24 74 65 78 74 7d 5d | 0d 7d 0d 0d 23 20 52 65 | $text}]|.}..# Re|
|000030f0| 74 75 72 6e 73 20 74 72 | 75 65 20 69 66 20 74 68 |turns tr|ue if th|
|00003100| 65 20 65 6e 74 69 72 65 | 20 77 69 6e 64 6f 77 20 |e entire| window |
|00003110| 69 73 20 73 65 6c 65 63 | 74 65 64 2c 20 61 6e 64 |is selec|ted, and|
|00003120| 20 66 61 6c 73 65 20 6f | 74 68 65 72 77 69 73 65 | false o|therwise|
|00003130| 2e 0d 70 72 6f 63 20 69 | 73 44 6f 63 75 6d 65 6e |..proc i|sDocumen|
|00003140| 74 53 65 6c 65 63 74 65 | 64 20 7b 7d 20 7b 0d 09 |tSelecte|d {} {..|
|00003150| 72 65 74 75 72 6e 20 5b | 65 78 70 72 20 7b 28 5b |return [|expr {([|
|00003160| 67 65 74 50 6f 73 5d 20 | 3d 3d 20 30 29 20 26 26 |getPos] |== 0) &&|
|00003170| 20 28 5b 73 65 6c 45 6e | 64 5d 20 3d 3d 20 5b 6d | ([selEn|d] == [m|
|00003180| 61 78 50 6f 73 5d 29 7d | 5d 0d 7d 0d 0d 23 20 54 |axPos])}|].}..# T|
|00003190| 61 6b 65 73 20 61 6e 79 | 20 73 74 72 69 6e 67 20 |akes any| string |
|000031a0| 61 6e 64 20 74 65 73 74 | 73 20 77 68 65 74 68 65 |and test|s whethe|
|000031b0| 72 20 6f 72 20 6e 6f 74 | 20 74 68 61 74 20 73 74 |r or not| that st|
|000031c0| 72 69 6e 67 20 63 6f 6e | 74 61 69 6e 73 20 61 6c |ring con|tains al|
|000031d0| 6c 20 0d 23 20 77 68 69 | 74 65 73 70 61 63 65 20 |l .# whi|tespace |
|000031e0| 63 68 61 72 61 63 74 65 | 72 73 2e 20 20 43 61 72 |characte|rs. Car|
|000031f0| 72 69 61 67 65 20 72 65 | 74 75 72 6e 73 20 61 72 |riage re|turns ar|
|00003200| 65 20 63 6f 6e 73 69 64 | 65 72 65 64 20 77 68 69 |e consid|ered whi|
|00003210| 74 65 73 70 61 63 65 2c | 20 0d 23 20 61 73 20 61 |tespace,| .# as a|
|00003220| 72 65 20 73 70 61 63 65 | 73 20 61 6e 64 20 74 61 |re space|s and ta|
|00003230| 62 73 2e 20 20 41 6c 73 | 6f 20 72 65 74 75 72 6e |bs. Als|o return|
|00003240| 73 20 74 72 75 65 20 66 | 6f 72 20 74 68 65 20 6e |s true f|or the n|
|00003250| 75 6c 6c 20 73 74 72 69 | 6e 67 2e 0d 70 72 6f 63 |ull stri|ng..proc|
|00003260| 20 69 73 57 68 69 74 65 | 73 70 61 63 65 20 7b 61 | isWhite|space {a|
|00003270| 6e 79 53 74 72 69 6e 67 | 7d 20 7b 0d 09 73 65 74 |nyString|} {..set|
|00003280| 20 6c 65 6e 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e | len [st|ring len|
|00003290| 67 74 68 20 24 61 6e 79 | 53 74 72 69 6e 67 5d 0d |gth $any|String].|
|000032a0| 09 66 6f 72 20 7b 73 65 | 74 20 69 20 30 7d 20 7b |.for {se|t i 0} {|
|000032b0| 24 69 20 3c 20 24 6c 65 | 6e 7d 20 7b 69 6e 63 72 |$i < $le|n} {incr|
|000032c0| 20 69 7d 20 7b 0d 09 09 | 73 65 74 20 63 20 5b 73 | i} {...|set c [s|
|000032d0| 74 72 69 6e 67 20 69 6e | 64 65 78 20 24 61 6e 79 |tring in|dex $any|
|000032e0| 53 74 72 69 6e 67 20 24 | 69 5d 0d 09 09 69 66 20 |String $|i]...if |
|000032f0| 7b 28 24 63 20 21 3d 20 | 22 5c 20 22 29 20 26 26 |{($c != |"\ ") &&|
|00003300| 20 28 24 63 20 21 3d 20 | 22 5c 74 22 29 20 26 26 | ($c != |"\t") &&|
|00003310| 20 28 24 63 20 21 3d 20 | 22 5c 72 22 29 7d 20 74 | ($c != |"\r")} t|
|00003320| 68 65 6e 20 7b 72 65 74 | 75 72 6e 20 30 7d 0d 09 |hen {ret|urn 0}..|
|00003330| 7d 0d 09 72 65 74 75 72 | 6e 20 31 0d 7d 0d 0d 23 |}..retur|n 1.}..#|
|00003340| 20 53 65 6c 65 63 74 20 | 74 68 65 20 6c 69 6e 65 | Select |the line|
|00003350| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 74 68 65 20 | contain|ing the |
|00003360| 69 6e 73 65 72 74 69 6f | 6e 20 70 6f 69 6e 74 2e |insertio|n point.|
|00003370| 0d 70 72 6f 63 20 6c 69 | 6e 65 53 65 6c 65 63 74 |.proc li|neSelect|
|00003380| 20 7b 7d 20 7b 0d 09 67 | 6f 74 6f 20 5b 6c 69 6e | {} {..g|oto [lin|
|00003390| 65 53 74 61 72 74 20 5b | 67 65 74 50 6f 73 5d 5d |eStart [|getPos]]|
|000033a0| 0d 09 6e 65 78 74 4c 69 | 6e 65 53 65 6c 65 63 74 |..nextLi|neSelect|
|000033b0| 0d 7d 0d 0d 23 20 43 68 | 65 63 6b 20 74 6f 20 73 |.}..# Ch|eck to s|
|000033c0| 65 65 20 69 66 20 74 68 | 65 20 4c 61 54 65 58 20 |ee if th|e LaTeX |
|000033d0| 73 79 6d 62 6f 6c 20 70 | 61 63 6b 61 67 65 20 68 |symbol p|ackage h|
|000033e0| 61 73 20 62 65 65 6e 20 | 6c 6f 61 64 65 64 3b 20 |as been |loaded; |
|000033f0| 69 66 20 6e 6f 74 2c 20 | 61 73 6b 20 0d 23 20 74 |if not, |ask .# t|
|00003400| 68 65 20 75 73 65 72 20 | 66 6f 72 20 64 69 72 65 |he user |for dire|
|00003410| 63 74 69 6f 6e 73 2e 20 | 20 52 65 74 75 72 6e 73 |ctions. | Returns|
|00003420| 20 66 61 6c 73 65 20 69 | 66 20 74 68 65 20 70 61 | false i|f the pa|
|00003430| 63 6b 61 67 65 20 69 73 | 20 6e 6f 74 20 6c 6f 61 |ckage is| not loa|
|00003440| 64 65 64 0d 23 20 41 4e | 44 20 74 68 65 20 75 73 |ded.# AN|D the us|
|00003450| 65 72 20 63 61 6e 63 65 | 6c 73 20 74 68 65 20 6f |er cance|ls the o|
|00003460| 70 65 72 61 74 69 6f 6e | 3b 20 6f 74 68 65 72 77 |peration|; otherw|
|00003470| 69 73 65 2c 20 72 65 74 | 75 72 6e 73 20 74 72 75 |ise, ret|urns tru|
|00003480| 65 2e 0d 70 72 6f 63 20 | 69 73 53 79 6d 62 6f 6c |e..proc |isSymbol|
|00003490| 50 61 63 6b 61 67 65 4c | 6f 61 64 65 64 20 7b 7d |PackageL|oaded {}|
|000034a0| 20 7b 0d 09 67 6c 6f 62 | 61 6c 20 73 65 61 72 63 | {..glob|al searc|
|000034b0| 68 4e 6f 69 73 69 6c 79 | 0d 09 73 65 74 20 62 65 |hNoisily|..set be|
|000034c0| 67 50 6f 73 20 5b 67 65 | 74 50 6f 73 5d 0d 09 73 |gPos [ge|tPos]..s|
|000034d0| 65 74 20 65 6e 64 50 6f | 73 20 5b 73 65 6c 45 6e |et endPo|s [selEn|
|000034e0| 64 5d 0d 09 73 65 74 20 | 73 65 61 72 63 68 53 74 |d]..set |searchSt|
|000034f0| 72 69 6e 67 20 7b 5c 5c | 75 73 65 70 61 63 6b 61 |ring {\\|usepacka|
|00003500| 67 65 5c 7b 2e 2a 6c 61 | 74 65 78 73 79 6d 2e 2a |ge\{.*la|texsym.*|
|00003510| 5c 7d 7d 0d 09 73 65 74 | 20 73 65 61 72 63 68 52 |\}}..set| searchR|
|00003520| 65 73 75 6c 74 20 5b 73 | 65 61 72 63 68 20 2d 6e |esult [s|earch -n|
|00003530| 20 2d 66 20 30 20 2d 6d | 20 30 20 2d 69 20 31 20 | -f 0 -m| 0 -i 1 |
|00003540| 2d 72 20 31 20 24 73 65 | 61 72 63 68 53 74 72 69 |-r 1 $se|archStri|
|00003550| 6e 67 20 24 62 65 67 50 | 6f 73 5d 0d 09 69 66 20 |ng $begP|os]..if |
|00003560| 7b 5b 6c 6c 65 6e 67 74 | 68 20 24 73 65 61 72 63 |{[llengt|h $searc|
|00003570| 68 52 65 73 75 6c 74 5d | 20 3d 3d 20 30 7d 20 74 |hResult]| == 0} t|
|00003580| 68 65 6e 20 7b 0d 09 09 | 63 61 73 65 20 5b 61 73 |hen {...|case [as|
|00003590| 6b 79 65 73 6e 6f 20 2d | 63 20 22 49 6e 73 65 72 |kyesno -|c "Inser|
|000035a0| 74 20 74 68 65 20 4c 61 | 54 65 58 20 73 79 6d 62 |t the La|TeX symb|
|000035b0| 6f 6c 20 70 61 63 6b 61 | 67 65 3f 22 5d 20 69 6e |ol packa|ge?"] in|
|000035c0| 20 7b 0d 09 09 09 22 79 | 65 73 22 20 7b 0d 09 09 | {...."y|es" {...|
|000035d0| 09 09 73 65 74 20 73 65 | 61 72 63 68 53 74 72 69 |..set se|archStri|
|000035e0| 6e 67 20 7b 5c 5c 64 6f | 63 75 6d 65 6e 74 63 6c |ng {\\do|cumentcl|
|000035f0| 61 73 73 28 5c 5b 2e 2a | 5c 5d 29 3f 5c 7b 2e 2a |ass(\[.*|\])?\{.*|
|00003600| 5c 7d 7d 0d 09 09 09 09 | 73 65 74 20 73 65 61 72 |\}}.....|set sear|
|00003610| 63 68 52 65 73 75 6c 74 | 20 5b 73 65 61 72 63 68 |chResult| [search|
|00003620| 20 2d 6e 20 2d 66 20 30 | 20 2d 6d 20 30 20 2d 69 | -n -f 0| -m 0 -i|
|00003630| 20 31 20 2d 72 20 31 20 | 24 73 65 61 72 63 68 53 | 1 -r 1 |$searchS|
|00003640| 74 72 69 6e 67 20 24 62 | 65 67 50 6f 73 5d 0d 09 |tring $b|egPos]..|
|00003650| 09 09 09 69 66 20 7b 5b | 6c 6c 65 6e 67 74 68 20 |...if {[|llength |
|00003660| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 5d 20 3d |$searchR|esult] =|
|00003670| 3d 20 30 7d 20 74 68 65 | 6e 20 7b 0d 09 09 09 09 |= 0} the|n {.....|
|00003680| 09 73 65 74 20 72 65 74 | 75 72 6e 56 61 6c 20 30 |.set ret|urnVal 0|
|00003690| 0d 09 09 09 09 09 69 66 | 20 7b 24 73 65 61 72 63 |......if| {$searc|
|000036a0| 68 4e 6f 69 73 69 6c 79 | 7d 20 7b 62 65 65 70 7d |hNoisily|} {beep}|
|000036b0| 0d 09 09 09 09 09 6d 65 | 73 73 61 67 65 20 22 63 |......me|ssage "c|
|000036c0| 61 6e 27 74 20 66 69 6e | 64 20 5c 5c 64 6f 63 75 |an't fin|d \\docu|
|000036d0| 6d 65 6e 74 63 6c 61 73 | 73 22 0d 09 09 09 09 7d |mentclas|s".....}|
|000036e0| 20 65 6c 73 65 20 7b 0d | 09 09 09 09 09 67 6f 74 | else {.|.....got|
|000036f0| 6f 20 5b 6c 69 6e 64 65 | 78 20 24 73 65 61 72 63 |o [linde|x $searc|
|00003700| 68 52 65 73 75 6c 74 20 | 31 5d 0d 09 09 09 09 09 |hResult |1]......|
|00003710| 73 65 74 20 74 78 74 20 | 22 5c 72 5c 5c 75 73 65 |set txt |"\r\\use|
|00003720| 70 61 63 6b 61 67 65 5c | 7b 6c 61 74 65 78 73 79 |package\|{latexsy|
|00003730| 6d 5c 7d 22 0d 09 09 09 | 09 09 73 65 74 20 6f 66 |m\}"....|..set of|
|00003740| 66 73 65 74 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e |fset [st|ring len|
|00003750| 67 74 68 20 24 74 78 74 | 5d 0d 09 09 09 09 09 73 |gth $txt|]......s|
|00003760| 65 74 20 62 65 67 50 6f | 73 20 5b 65 78 70 72 20 |et begPo|s [expr |
|00003770| 24 62 65 67 50 6f 73 20 | 2b 20 24 6f 66 66 73 65 |$begPos |+ $offse|
|00003780| 74 5d 0d 09 09 09 09 09 | 73 65 74 20 65 6e 64 50 |t]......|set endP|
|00003790| 6f 73 20 5b 65 78 70 72 | 20 24 65 6e 64 50 6f 73 |os [expr| $endPos|
|000037a0| 20 2b 20 24 6f 66 66 73 | 65 74 5d 0d 09 09 09 09 | + $offs|et].....|
|000037b0| 09 69 6e 73 65 72 74 54 | 65 78 74 20 24 74 78 74 |.insertT|ext $txt|
|000037c0| 0d 09 09 09 09 09 73 65 | 74 20 72 65 74 75 72 6e |......se|t return|
|000037d0| 56 61 6c 20 31 0d 09 09 | 09 09 7d 0d 09 09 09 7d |Val 1...|..}....}|
|000037e0| 0d 09 09 09 22 6e 6f 22 | 20 7b 73 65 74 20 72 65 |...."no"| {set re|
|000037f0| 74 75 72 6e 56 61 6c 20 | 31 7d 0d 09 09 09 22 63 |turnVal |1}...."c|
|00003800| 61 6e 63 65 6c 22 20 7b | 73 65 74 20 72 65 74 75 |ancel" {|set retu|
|00003810| 72 6e 56 61 6c 20 30 7d | 0d 09 09 7d 0d 09 7d 20 |rnVal 0}|...}..} |
|00003820| 65 6c 73 65 20 7b 0d 09 | 09 73 65 74 20 72 65 74 |else {..|.set ret|
|00003830| 75 72 6e 56 61 6c 20 31 | 0d 09 7d 0d 09 73 65 6c |urnVal 1|..}..sel|
|00003840| 65 63 74 20 24 62 65 67 | 50 6f 73 20 24 65 6e 64 |ect $beg|Pos $end|
|00003850| 50 6f 73 0d 09 72 65 74 | 75 72 6e 20 24 72 65 74 |Pos..ret|urn $ret|
|00003860| 75 72 6e 56 61 6c 0d 7d | 0d 0d 0d 23 23 23 23 23 |urnVal.}|...#####|
|00003870| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003880| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003890| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000038a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000038b0| 23 23 23 23 23 23 23 23 | 0d 23 20 0d 23 20 42 61 |########|.# .# Ba|
|000038c0| 73 69 63 20 43 6f 6d 6d | 61 6e 64 73 0d 23 0d 23 |sic Comm|ands.#.#|
|000038d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000038e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000038f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003900| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00003910| 23 23 23 23 23 23 23 23 | 23 23 23 23 0d 0d 70 72 |########|####..pr|
|00003920| 6f 63 20 74 79 70 65 73 | 65 74 20 7b 7d 20 7b 0d |oc types|et {} {.|
|00003930| 09 67 6c 6f 62 61 6c 20 | 6c 61 74 65 78 50 61 74 |.global |latexPat|
|00003940| 68 0d 09 0d 09 23 20 49 | 6e 69 74 69 61 6c 69 7a |h....# I|nitializ|
|00003950| 61 74 69 6f 6e 3a 0d 09 | 73 65 74 20 69 73 4f 7a |ation:..|set isOz|
|00003960| 54 65 58 20 30 0d 09 73 | 65 74 20 69 73 54 65 78 |TeX 0..s|et isTex|
|00003970| 74 75 72 65 73 20 30 0d | 09 73 65 74 20 69 73 43 |tures 0.|.set isC|
|00003980| 4d 61 63 54 65 58 20 30 | 0d 09 0d 09 73 65 74 20 |MacTeX 0|....set |
|00003990| 63 75 72 72 65 6e 74 57 | 69 6e 20 5b 6c 69 6e 64 |currentW|in [lind|
|000039a0| 65 78 20 5b 77 69 6e 4e | 61 6d 65 73 20 2d 66 5d |ex [winN|ames -f]|
|000039b0| 20 30 5d 0d 09 0d 09 23 | 20 43 68 65 63 6b 20 69 | 0]....#| Check i|
|000039c0| 66 20 61 20 4c 61 54 65 | 58 20 61 70 70 20 69 73 |f a LaTe|X app is|
|000039d0| 20 72 75 6e 6e 69 6e 67 | 2e 20 20 49 66 20 6e 6f | running|. If no|
|000039e0| 74 2c 20 6f 70 65 6e 20 | 74 68 65 20 61 70 70 20 |t, open |the app |
|000039f0| 6e 61 6d 65 64 20 69 6e | 20 0d 09 23 20 24 6c 61 |named in| ..# $la|
|00003a00| 74 65 78 50 61 74 68 20 | 28 69 66 20 64 65 66 69 |texPath |(if defi|
|00003a10| 6e 65 64 29 20 6f 72 20 | 68 61 76 65 20 74 68 65 |ned) or |have the|
|00003a20| 20 75 73 65 72 20 73 65 | 6c 65 63 74 20 61 6e 20 | user se|lect an |
|00003a30| 61 70 70 20 76 69 61 20 | 61 0d 09 23 20 73 74 61 |app via |a..# sta|
|00003a40| 6e 64 61 72 64 20 66 69 | 6c 65 20 64 69 61 6c 6f |ndard fi|le dialo|
|00003a50| 67 2e 0d 09 73 65 74 20 | 61 70 70 4e 61 6d 65 20 |g...set |appName |
|00003a60| 5b 63 68 65 63 6b 52 75 | 6e 6e 69 6e 67 4c 20 4c |[checkRu|nningL L|
|00003a70| 61 54 65 58 20 7b 4f 54 | 45 58 20 2a 54 45 58 20 |aTeX {OT|EX *TEX |
|00003a80| 2a 58 65 54 7d 20 6c 61 | 74 65 78 50 61 74 68 5d |*XeT} la|texPath]|
|00003a90| 0d 09 0d 09 69 66 20 7b | 5b 73 74 72 69 6e 67 20 |....if {|[string |
|00003aa0| 6d 61 74 63 68 20 7b 4f | 7a 54 65 58 2a 7d 20 24 |match {O|zTeX*} $|
|00003ab0| 61 70 70 4e 61 6d 65 5d | 7d 20 7b 0d 09 09 73 65 |appName]|} {...se|
|00003ac0| 74 20 69 73 4f 7a 54 65 | 58 20 31 0d 09 7d 20 65 |t isOzTe|X 1..} e|
|00003ad0| 6c 73 65 69 66 20 7b 5b | 73 74 72 69 6e 67 20 6d |lseif {[|string m|
|00003ae0| 61 74 63 68 20 7b 54 65 | 78 74 75 72 65 73 2a 7d |atch {Te|xtures*}|
|00003af0| 20 24 61 70 70 4e 61 6d | 65 5d 7d 20 7b 0d 09 09 | $appNam|e]} {...|
|00003b00| 73 65 74 20 69 73 54 65 | 78 74 75 72 65 73 20 31 |set isTe|xtures 1|
|00003b10| 0d 09 7d 20 65 6c 73 65 | 69 66 20 7b 5b 73 74 72 |..} else|if {[str|
|00003b20| 69 6e 67 20 6d 61 74 63 | 68 20 7b 2a 74 65 78 7d |ing matc|h {*tex}|
|00003b30| 20 24 61 70 70 4e 61 6d | 65 5d 7d 20 7b 0d 09 09 | $appNam|e]} {...|
|00003b40| 73 65 74 20 69 73 43 4d | 61 63 54 65 58 20 31 0d |set isCM|acTeX 1.|
|00003b50| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 61 6c 65 72 |.} else |{...aler|
|00003b60| 74 6e 6f 74 65 20 22 53 | 6f 72 72 79 2c 20 49 20 |tnote "S|orry, I |
|00003b70| 64 6f 6e 27 74 20 6b 6e | 6f 77 20 68 6f 77 20 74 |don't kn|ow how t|
|00003b80| 6f 20 74 61 6c 6b 20 74 | 6f 20 5c 22 24 61 70 70 |o talk t|o \"$app|
|00003b90| 4e 61 6d 65 5c 22 2e 22 | 0d 09 09 72 65 74 75 72 |Name\"."|...retur|
|00003ba0| 6e 0d 09 7d 0d 09 69 66 | 20 7b 5b 77 69 6e 49 6e |n..}..if| {[winIn|
|00003bb0| 66 6f 20 64 69 72 74 79 | 5d 7d 20 7b 0d 09 09 63 |fo dirty|]} {...c|
|00003bc0| 61 73 65 20 5b 61 73 6b | 79 65 73 6e 6f 20 2d 63 |ase [ask|yesno -c|
|00003bd0| 20 22 53 61 76 65 20 5c | 22 24 63 75 72 72 65 6e | "Save \|"$curren|
|00003be0| 74 57 69 6e 5c 22 3f 22 | 5d 20 69 6e 20 7b 0d 09 |tWin\"?"|] in {..|
|00003bf0| 09 09 22 79 65 73 22 20 | 7b 73 61 76 65 7d 0d 09 |.."yes" |{save}..|
|00003c00| 09 09 22 6e 6f 22 20 7b | 7d 0d 09 09 09 22 63 61 |.."no" {|}...."ca|
|00003c10| 6e 63 65 6c 22 20 7b 72 | 65 74 75 72 6e 7d 0d 09 |ncel" {r|eturn}..|
|00003c20| 09 7d 0d 09 7d 0d 09 73 | 77 69 74 63 68 54 6f 20 |.}..}..s|witchTo |
|00003c30| 24 61 70 70 4e 61 6d 65 | 0d 09 69 66 20 7b 24 69 |$appName|..if {$i|
|00003c40| 73 4f 7a 54 65 58 7d 20 | 7b 0d 09 09 73 65 6e 64 |sOzTeX} |{...send|
|00003c50| 4f 70 65 6e 45 76 65 6e | 74 20 2d 6e 20 24 61 70 |OpenEven|t -n $ap|
|00003c60| 70 4e 61 6d 65 20 24 63 | 75 72 72 65 6e 74 57 69 |pName $c|urrentWi|
|00003c70| 6e 0d 09 7d 20 65 6c 73 | 65 69 66 20 7b 24 69 73 |n..} els|eif {$is|
|00003c80| 54 65 78 74 75 72 65 73 | 7d 20 7b 0d 09 09 73 65 |Textures|} {...se|
|00003c90| 6e 64 4f 70 65 6e 45 76 | 65 6e 74 20 2d 6e 20 24 |ndOpenEv|ent -n $|
|00003ca0| 61 70 70 4e 61 6d 65 20 | 24 63 75 72 72 65 6e 74 |appName |$current|
|00003cb0| 57 69 6e 0d 09 7d 20 65 | 6c 73 65 69 66 20 7b 24 |Win..} e|lseif {$|
|00003cc0| 69 73 43 4d 61 63 54 65 | 58 7d 20 7b 0d 09 09 64 |isCMacTe|X} {...d|
|00003cd0| 6f 73 63 20 2d 6e 20 24 | 6e 61 6d 65 20 2d 6b 20 |osc -n $|name -k |
|00003ce0| 27 61 65 76 74 27 20 2d | 65 20 27 6f 64 6f 63 27 |'aevt' -|e 'odoc'|
|00003cf0| 20 2d 72 20 2d 66 20 24 | 63 75 72 72 65 6e 74 57 | -r -f $|currentW|
|00003d00| 69 6e 0d 09 7d 0d 7d 0d | 23 20 53 6c 69 67 68 74 |in..}.}.|# Slight|
|00003d10| 6c 79 20 6d 6f 64 69 66 | 69 65 64 20 76 65 72 73 |ly modif|ied vers|
|00003d20| 69 6f 6e 20 6f 66 20 27 | 63 68 65 63 6b 52 75 6e |ion of '|checkRun|
|00003d30| 6e 69 6e 67 27 20 74 68 | 61 74 20 6c 6f 6f 6b 73 |ning' th|at looks|
|00003d40| 20 66 6f 72 20 61 6e 79 | 20 6f 66 20 61 0d 23 20 | for any| of a.# |
|00003d50| 6c 69 73 74 20 6f 66 20 | 72 75 6e 6e 69 6e 67 20 |list of |running |
|00003d60| 61 70 70 73 2e 20 20 28 | 43 6f 75 72 74 65 73 79 |apps. (|Courtesy|
|00003d70| 20 6f 66 20 54 6f 6d 20 | 50 6f 6c 6c 61 72 64 29 | of Tom |Pollard)|
|00003d80| 0d 70 72 6f 63 20 63 68 | 65 63 6b 52 75 6e 6e 69 |.proc ch|eckRunni|
|00003d90| 6e 67 4c 20 7b 70 72 6f | 6d 70 74 20 73 69 67 73 |ngL {pro|mpt sigs|
|00003da0| 20 70 61 74 68 7d 20 7b | 0d 09 67 6c 6f 62 61 6c | path} {|..global|
|00003db0| 20 24 70 61 74 68 0d 09 | 66 6f 72 65 61 63 68 20 | $path..|foreach |
|00003dc0| 73 69 67 20 24 73 69 67 | 73 20 7b 0d 09 09 66 6f |sig $sig|s {...fo|
|00003dd0| 72 65 61 63 68 20 70 72 | 6f 63 20 5b 70 72 6f 63 |reach pr|oc [proc|
|00003de0| 65 73 73 65 73 5d 20 7b | 0d 09 09 09 69 66 20 7b |esses] {|....if {|
|00003df0| 5b 6c 69 6e 64 65 78 20 | 24 70 72 6f 63 20 31 5d |[lindex |$proc 1]|
|00003e00| 20 3d 3d 20 24 73 69 67 | 7d 20 7b 0d 09 09 09 09 | == $sig|} {.....|
|00003e10| 72 65 74 75 72 6e 20 5b | 6c 69 6e 64 65 78 20 24 |return [|lindex $|
|00003e20| 70 72 6f 63 20 30 5d 0d | 09 09 09 7d 0d 09 09 7d |proc 0].|...}...}|
|00003e30| 0d 09 7d 0d 09 69 66 20 | 7b 21 5b 69 6e 66 6f 20 |..}..if |{![info |
|00003e40| 65 78 69 73 74 73 20 24 | 70 61 74 68 5d 20 7c 7c |exists $|path] |||
|00003e50| 20 21 5b 66 69 6c 65 20 | 65 78 69 73 74 73 20 5b | ![file |exists [|
|00003e60| 73 65 74 20 24 70 61 74 | 68 5d 5d 7d 20 7b 0d 09 |set $pat|h]]} {..|
|00003e70| 09 69 66 20 7b 5b 61 64 | 64 41 70 70 50 61 74 68 |.if {[ad|dAppPath|
|00003e80| 20 24 70 72 6f 6d 70 74 | 20 24 70 61 74 68 5d 7d | $prompt| $path]}|
|00003e90| 20 72 65 74 75 72 6e 0d | 09 7d 0d 09 69 66 20 7b | return.|.}..if {|
|00003ea0| 5b 63 61 74 63 68 20 7b | 67 65 74 46 69 6c 65 53 |[catch {|getFileS|
|00003eb0| 69 67 20 5b 73 65 74 20 | 24 70 61 74 68 5d 7d 5d |ig [set |$path]}]|
|00003ec0| 7d 20 7b 0d 09 09 69 66 | 20 7b 5b 61 64 64 41 70 |} {...if| {[addAp|
|00003ed0| 70 50 61 74 68 20 24 70 | 72 6f 6d 70 74 20 24 70 |pPath $p|rompt $p|
|00003ee0| 61 74 68 5d 7d 20 72 65 | 74 75 72 6e 0d 09 7d 0d |ath]} re|turn..}.|
|00003ef0| 09 73 65 74 20 73 69 67 | 20 5b 67 65 74 46 69 6c |.set sig| [getFil|
|00003f00| 65 53 69 67 20 5b 73 65 | 74 20 24 70 61 74 68 5d |eSig [se|t $path]|
|00003f10| 5d 0d 09 69 66 20 7b 5b | 63 61 74 63 68 20 7b 6c |]..if {[|catch {l|
|00003f20| 61 75 6e 63 68 20 2d 66 | 20 5b 73 65 74 20 24 70 |aunch -f| [set $p|
|00003f30| 61 74 68 5d 7d 5d 7d 20 | 7b 0d 09 09 65 72 72 6f |ath]}]} |{...erro|
|00003f40| 72 20 22 50 72 6f 62 6c | 65 6d 20 77 69 74 68 20 |r "Probl|em with |
|00003f50| 6c 61 75 6e 63 68 69 6e | 67 20 66 69 6c 65 20 28 |launchin|g file (|
|00003f60| 6f 75 74 20 6f 66 20 6d | 65 6d 6f 72 79 3f 29 22 |out of m|emory?)"|
|00003f70| 0d 09 7d 0d 09 72 65 74 | 75 72 6e 20 5b 66 69 6c |..}..ret|urn [fil|
|00003f80| 65 20 74 61 69 6c 20 5b | 73 65 74 20 24 70 61 74 |e tail [|set $pat|
|00003f90| 68 5d 5d 0d 23 09 72 65 | 74 75 72 6e 20 5b 63 68 |h]].#.re|turn [ch|
|00003fa0| 65 63 6b 52 75 6e 6e 69 | 6e 67 20 24 6e 61 6d 65 |eckRunni|ng $name|
|00003fb0| 20 24 73 69 67 20 24 70 | 61 74 68 5d 0d 7d 0d 0d | $sig $p|ath].}..|
|00003fc0| 0d 23 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.#------|--------|
|00003fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003fe0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 23 20 47 |--------|----.# G|
|00004010| 6f 74 6f 3a 0d 23 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |oto:.#--|--------|
|00004020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004060| 0d 0d 23 20 53 77 69 74 | 63 68 20 74 6f 20 28 62 |..# Swit|ch to (b|
|00004070| 75 74 20 64 6f 6e 27 74 | 20 65 78 65 63 75 74 65 |ut don't| execute|
|00004080| 29 20 61 6e 79 20 6f 66 | 20 74 68 65 20 66 6f 6c |) any of| the fol|
|00004090| 6c 6f 77 69 6e 67 20 61 | 70 70 6c 69 63 61 74 69 |lowing a|pplicati|
|000040a0| 6f 6e 73 2e 0d 70 72 6f | 63 20 6c 61 74 65 78 20 |ons..pro|c latex |
|000040b0| 7b 7d 20 7b 0d 09 67 6c | 6f 62 61 6c 20 6c 61 74 |{} {..gl|obal lat|
|000040c0| 65 78 50 61 74 68 0d 09 | 73 65 74 20 73 69 67 20 |exPath..|set sig |
|000040d0| 22 22 0d 09 63 61 74 63 | 68 20 7b 73 74 72 69 6e |""..catc|h {strin|
|000040e0| 67 20 74 72 69 6d 20 5b | 6c 69 6e 64 65 78 20 5b |g trim [|lindex [|
|000040f0| 67 65 74 66 69 6e 66 6f | 20 24 6c 61 74 65 78 50 |getfinfo| $latexP|
|00004100| 61 74 68 5d 20 31 5d 20 | 27 7d 20 73 69 67 0d 09 |ath] 1] |'} sig..|
|00004110| 73 65 74 20 6e 61 6d 65 | 20 5b 63 68 65 63 6b 52 |set name| [checkR|
|00004120| 75 6e 6e 69 6e 67 20 6c | 61 74 65 78 20 24 73 69 |unning l|atex $si|
|00004130| 67 20 6c 61 74 65 78 50 | 61 74 68 5d 0d 09 69 66 |g latexP|ath]..if|
|00004140| 20 7b 21 5b 73 74 72 69 | 6e 67 20 6c 65 6e 67 74 | {![stri|ng lengt|
|00004150| 68 20 24 6e 61 6d 65 5d | 7d 20 72 65 74 75 72 6e |h $name]|} return|
|00004160| 0d 09 73 77 69 74 63 68 | 54 6f 20 24 6e 61 6d 65 |..switch|To $name|
|00004170| 0d 7d 0d 70 72 6f 63 20 | 62 69 62 74 65 78 20 7b |.}.proc |bibtex {|
|00004180| 7d 20 7b 0d 09 67 6c 6f | 62 61 6c 20 62 69 62 74 |} {..glo|bal bibt|
|00004190| 65 78 50 61 74 68 0d 09 | 73 65 74 20 6e 61 6d 65 |exPath..|set name|
|000041a0| 20 5b 63 68 65 63 6b 52 | 75 6e 6e 69 6e 67 20 42 | [checkR|unning B|
|000041b0| 69 62 54 65 58 20 42 49 | 42 74 20 62 69 62 74 65 |ibTeX BI|Bt bibte|
|000041c0| 78 50 61 74 68 5d 0d 09 | 69 66 20 7b 21 5b 73 74 |xPath]..|if {![st|
|000041d0| 72 69 6e 67 20 6c 65 6e | 67 74 68 20 24 6e 61 6d |ring len|gth $nam|
|000041e0| 65 5d 7d 20 72 65 74 75 | 72 6e 0d 09 73 77 69 74 |e]} retu|rn..swit|
|000041f0| 63 68 54 6f 20 24 6e 61 | 6d 65 0d 7d 0d 70 72 6f |chTo $na|me.}.pro|
|00004200| 63 20 6d 61 6b 65 69 6e | 64 65 78 20 7b 7d 20 7b |c makein|dex {} {|
|00004210| 0d 09 67 6c 6f 62 61 6c | 20 6d 61 6b 65 69 6e 64 |..global| makeind|
|00004220| 65 78 50 61 74 68 0d 09 | 73 65 74 20 6e 61 6d 65 |exPath..|set name|
|00004230| 20 5b 63 68 65 63 6b 52 | 75 6e 6e 69 6e 67 20 4d | [checkR|unning M|
|00004240| 61 6b 65 49 6e 64 65 78 | 20 4d 69 64 78 20 6d 61 |akeIndex| Midx ma|
|00004250| 6b 65 69 6e 64 65 78 50 | 61 74 68 5d 0d 09 69 66 |keindexP|ath]..if|
|00004260| 20 7b 21 5b 73 74 72 69 | 6e 67 20 6c 65 6e 67 74 | {![stri|ng lengt|
|00004270| 68 20 24 6e 61 6d 65 5d | 7d 20 72 65 74 75 72 6e |h $name]|} return|
|00004280| 0d 09 73 77 69 74 63 68 | 54 6f 20 24 6e 61 6d 65 |..switch|To $name|
|00004290| 0d 7d 0d 0d 70 72 6f 63 | 20 6e 65 78 74 53 65 63 |.}..proc| nextSec|
|000042a0| 74 69 6f 6e 20 7b 7d 20 | 7b 0d 09 67 6c 6f 62 61 |tion {} |{..globa|
|000042b0| 6c 20 73 65 61 72 63 68 | 4e 6f 69 73 69 6c 79 20 |l search|Noisily |
|000042c0| 66 75 6e 63 45 78 70 72 | 41 6c 74 0d 09 73 65 74 |funcExpr|Alt..set|
|000042d0| 20 73 65 61 72 63 68 53 | 74 72 69 6e 67 20 24 66 | searchS|tring $f|
|000042e0| 75 6e 63 45 78 70 72 41 | 6c 74 0d 09 69 66 20 7b |uncExprA|lt..if {|
|000042f0| 5b 69 73 53 65 6c 65 63 | 74 69 6f 6e 5d 7d 20 74 |[isSelec|tion]} t|
|00004300| 68 65 6e 20 7b 0d 09 09 | 73 65 74 20 73 65 61 72 |hen {...|set sear|
|00004310| 63 68 50 6f 73 20 5b 65 | 78 70 72 20 5b 67 65 74 |chPos [e|xpr [get|
|00004320| 50 6f 73 5d 2b 31 5d 0d | 09 7d 20 65 6c 73 65 20 |Pos]+1].|.} else |
|00004330| 7b 0d 09 09 73 65 74 20 | 73 65 61 72 63 68 50 6f |{...set |searchPo|
|00004340| 73 20 5b 67 65 74 50 6f | 73 5d 0d 09 7d 0d 09 73 |s [getPo|s]..}..s|
|00004350| 65 74 20 73 65 61 72 63 | 68 52 65 73 75 6c 74 20 |et searc|hResult |
|00004360| 5b 73 65 61 72 63 68 20 | 2d 66 20 31 20 2d 72 20 |[search |-f 1 -r |
|00004370| 31 20 2d 6e 20 24 73 65 | 61 72 63 68 53 74 72 69 |1 -n $se|archStri|
|00004380| 6e 67 20 24 73 65 61 72 | 63 68 50 6f 73 5d 0d 09 |ng $sear|chPos]..|
|00004390| 69 66 20 7b 5b 73 74 72 | 69 6e 67 20 6c 65 6e 67 |if {[str|ing leng|
|000043a0| 74 68 20 24 73 65 61 72 | 63 68 52 65 73 75 6c 74 |th $sear|chResult|
|000043b0| 5d 7d 20 7b 0d 09 09 73 | 65 6c 65 63 74 20 5b 6c |]} {...s|elect [l|
|000043c0| 69 6e 64 65 78 20 24 73 | 65 61 72 63 68 52 65 73 |index $s|earchRes|
|000043d0| 75 6c 74 20 30 5d 20 5b | 6c 69 6e 64 65 78 20 24 |ult 0] [|lindex $|
|000043e0| 73 65 61 72 63 68 52 65 | 73 75 6c 74 20 31 5d 0d |searchRe|sult 1].|
|000043f0| 09 7d 20 65 6c 73 65 20 | 7b 0d 09 09 69 66 20 7b |.} else |{...if {|
|00004400| 24 73 65 61 72 63 68 4e | 6f 69 73 69 6c 79 7d 20 |$searchN|oisily} |
|00004410| 7b 62 65 65 70 7d 0d 09 | 09 6d 65 73 73 61 67 65 |{beep}..|.message|
|00004420| 20 22 6e 65 78 74 20 24 | 66 75 6e 63 45 78 70 72 | "next $|funcExpr|
|00004430| 41 6c 74 20 6e 6f 74 20 | 66 6f 75 6e 64 22 0d 09 |Alt not |found"..|
|00004440| 7d 0d 7d 0d 70 72 6f 63 | 20 70 72 65 76 53 65 63 |}.}.proc| prevSec|
|00004450| 74 69 6f 6e 20 7b 7d 20 | 7b 0d 09 67 6c 6f 62 61 |tion {} |{..globa|
|00004460| 6c 20 73 65 61 72 63 68 | 4e 6f 69 73 69 6c 79 20 |l search|Noisily |
|00004470| 66 75 6e 63 45 78 70 72 | 41 6c 74 0d 09 73 65 74 |funcExpr|Alt..set|
|00004480| 20 73 65 61 72 63 68 53 | 74 72 69 6e 67 20 24 66 | searchS|tring $f|
|00004490| 75 6e 63 45 78 70 72 41 | 6c 74 0d 09 73 65 74 20 |uncExprA|lt..set |
|000044a0| 73 65 61 72 63 68 52 65 | 73 75 6c 74 20 5b 73 65 |searchRe|sult [se|
|000044b0| 61 72 63 68 20 2d 66 20 | 30 20 2d 72 20 31 20 2d |arch -f |0 -r 1 -|
|000044c0| 6e 20 24 73 65 61 72 63 | 68 53 74 72 69 6e 67 20 |n $searc|hString |
|000044d0| 5b 65 78 70 72 20 5b 67 | 65 74 50 6f 73 5d 2d 31 |[expr [g|etPos]-1|
|000044e0| 5d 5d 0d 09 69 66 20 7b | 5b 73 74 72 69 6e 67 20 |]]..if {|[string |
|000044f0| 6c 65 6e 67 74 68 20 24 | 73 65 61 72 63 68 52 65 |length $|searchRe|
|00004500| 73 75 6c 74 5d 7d 20 7b | 0d 09 09 73 65 6c 65 63 |sult]} {|...selec|
|00004510| 74 20 5b 6c 69 6e 64 65 | 78 20 24 73 65 61 72 63 |t [linde|x $searc|
|00004520| 68 52 65 73 75 6c 74 20 | 30 5d 20 5b 6c 69 6e 64 |hResult |0] [lind|
|00004530| 65 78 20 24 73 65 61 72 | 63 68 52 65 73 75 6c 74 |ex $sear|chResult|
|00004540| 20 31 5d 0d 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 | 1]..} e|lse {...|
|00004550| 69 66 20 7b 24 73 65 61 | 72 63 68 4e 6f 69 73 69 |if {$sea|rchNoisi|
|00004560| 6c 79 7d 20 7b 62 65 65 | 70 7d 0d 09 09 6d 65 73 |ly} {bee|p}...mes|
|00004570| 73 61 67 65 20 22 70 72 | 65 76 69 6f 75 73 20 24 |sage "pr|evious $|
|00004580| 66 75 6e 63 45 78 70 72 | 41 6c 74 20 6e 6f 74 20 |funcExpr|Alt not |
|00004590| 66 6f 75 6e 64 22 0d 09 | 7d 0d 7d 0d 70 72 6f 63 |found"..|}.}.proc|
|000045a0| 20 6e 65 78 74 53 75 62 | 73 65 63 74 69 6f 6e 20 | nextSub|section |
|000045b0| 7b 7d 20 7b 0d 09 67 6c | 6f 62 61 6c 20 73 65 61 |{} {..gl|obal sea|
|000045c0| 72 63 68 4e 6f 69 73 69 | 6c 79 20 66 75 6e 63 45 |rchNoisi|ly funcE|
|000045d0| 78 70 72 0d 09 73 65 74 | 20 73 65 61 72 63 68 53 |xpr..set| searchS|
|000045e0| 74 72 69 6e 67 20 24 66 | 75 6e 63 45 78 70 72 0d |tring $f|uncExpr.|
|000045f0| 09 69 66 20 7b 5b 69 73 | 53 65 6c 65 63 74 69 6f |.if {[is|Selectio|
|00004600| 6e 5d 7d 20 74 68 65 6e | 20 7b 0d 09 09 73 65 74 |n]} then| {...set|
|00004610| 20 73 65 61 72 63 68 50 | 6f 73 20 5b 65 78 70 72 | searchP|os [expr|
|00004620| 20 5b 67 65 74 50 6f 73 | 5d 2b 31 5d 0d 09 7d 20 | [getPos|]+1]..} |
|00004630| 65 6c 73 65 20 7b 0d 09 | 09 73 65 74 20 73 65 61 |else {..|.set sea|
|00004640| 72 63 68 50 6f 73 20 5b | 67 65 74 50 6f 73 5d 0d |rchPos [|getPos].|
|00004650| 09 7d 0d 09 73 65 74 20 | 73 65 61 72 63 68 52 65 |.}..set |searchRe|
|00004660| 73 75 6c 74 20 5b 73 65 | 61 72 63 68 20 2d 66 20 |sult [se|arch -f |
|00004670| 31 20 2d 72 20 31 20 2d | 6e 20 24 73 65 61 72 63 |1 -r 1 -|n $searc|
|00004680| 68 53 74 72 69 6e 67 20 | 24 73 65 61 72 63 68 50 |hString |$searchP|
|00004690| 6f 73 5d 0d 09 69 66 20 | 7b 5b 73 74 72 69 6e 67 |os]..if |{[string|
|000046a0| 20 6c 65 6e 67 74 68 20 | 24 73 65 61 72 63 68 52 | length |$searchR|
|000046b0| 65 73 75 6c 74 5d 7d 20 | 7b 0d 09 09 73 65 6c 65 |esult]} |{...sele|
|000046c0| 63 74 20 5b 6c 69 6e 64 | 65 78 20 24 73 65 61 72 |ct [lind|ex $sear|
|000046d0| 63 68 52 65 73 75 6c 74 | 20 30 5d 20 5b 6c 69 6e |chResult| 0] [lin|
|000046e0| 64 65 78 20 24 73 65 61 | 72 63 68 52 65 73 75 6c |dex $sea|rchResul|
|000046f0| 74 20 31 5d 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |t 1]..} |else {..|
|00004700| 09 69 66 20 7b 24 73 65 | 61 72 63 68 4e 6f 69 73 |.if {$se|archNois|
|00004710| 69 6c 79 7d 20 7b 62 65 | 65 70 7d 0d 09 09 6d 65 |ily} {be|ep}...me|
|00004720| 73 73 61 67 65 20 22 6e | 65 78 74 20 24 66 75 6e |ssage "n|ext $fun|
|00004730| 63 45 78 70 72 20 6e 6f | 74 20 66 6f 75 6e 64 22 |cExpr no|t found"|
|00004740| 0d 09 7d 0d 7d 0d 70 72 | 6f 63 20 70 72 65 76 53 |..}.}.pr|oc prevS|
|00004750| 75 62 73 65 63 74 69 6f | 6e 20 7b 7d 20 7b 0d 09 |ubsectio|n {} {..|
|00004760| 67 6c 6f 62 61 6c 20 73 | 65 61 72 63 68 4e 6f 69 |global s|earchNoi|
|00004770| 73 69 6c 79 20 66 75 6e | 63 45 78 70 72 0d 09 73 |sily fun|cExpr..s|
|00004780| 65 74 20 73 65 61 72 63 | 68 53 74 72 69 6e 67 20 |et searc|hString |
|00004790| 24 66 75 6e 63 45 78 70 | 72 0d 09 73 65 74 20 73 |$funcExp|r..set s|
|000047a0| 65 61 72 63 68 52 65 73 | 75 6c 74 20 5b 73 65 61 |earchRes|ult [sea|
|000047b0| 72 63 68 20 2d 66 20 30 | 20 2d 72 20 31 20 2d 6e |rch -f 0| -r 1 -n|
|000047c0| 20 24 73 65 61 72 63 68 | 53 74 72 69 6e 67 20 5b | $search|String [|
|000047d0| 65 78 70 72 20 5b 67 65 | 74 50 6f 73 5d 2d 31 5d |expr [ge|tPos]-1]|
|000047e0| 5d 0d 09 69 66 20 7b 5b | 73 74 72 69 6e 67 20 6c |]..if {[|string l|
|000047f0| 65 6e 67 74 68 20 24 73 | 65 61 72 63 68 52 65 73 |ength $s|earchRes|
|00004800| 75 6c 74 5d 7d 20 7b 0d | 09 09 73 65 6c 65 63 74 |ult]} {.|..select|
|00004810| 20 5b 6c 69 6e 64 65 78 | 20 24 73 65 61 72 63 68 | [lindex| $search|
|00004820| 52 65 73 75 6c 74 20 30 | 5d 20 5b 6c 69 6e 64 65 |Result 0|] [linde|
|00004830| 78 20 24 73 65 61 72 63 | 68 52 65 73 75 6c 74 20 |x $searc|hResult |
|00004840| 31 5d 0d 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 69 |1]..} el|se {...i|
|00004850| 66 20 7b 24 73 65 61 72 | 63 68 4e 6f 69 73 69 6c |f {$sear|chNoisil|
|00004860| 79 7d 20 7b 62 65 65 70 | 7d 0d 09 09 6d 65 73 73 |y} {beep|}...mess|
|00004870| 61 67 65 20 22 70 72 65 | 76 69 6f 75 73 20 24 66 |age "pre|vious $f|
|00004880| 75 6e 63 45 78 70 72 20 | 6e 6f 74 20 66 6f 75 6e |uncExpr |not foun|
|00004890| 64 22 0d 09 7d 0d 7d 0d | 0d 70 72 6f 63 20 67 6f |d"..}.}.|.proc go|
|000048a0| 74 6f 54 61 62 53 74 6f | 70 20 7b 64 69 72 65 63 |toTabSto|p {direc|
|000048b0| 74 69 6f 6e 49 6e 64 69 | 63 61 74 6f 72 7d 20 7b |tionIndi|cator} {|
|000048c0| 0d 09 73 65 74 20 73 65 | 61 72 63 68 52 65 73 75 |..set se|archResu|
|000048d0| 6c 74 20 5b 73 65 61 72 | 63 68 20 2d 6e 20 2d 66 |lt [sear|ch -n -f|
|000048e0| 20 24 64 69 72 65 63 74 | 69 6f 6e 49 6e 64 69 63 | $direct|ionIndic|
|000048f0| 61 74 6f 72 20 2d 6d 20 | 30 20 2d 69 20 31 20 2d |ator -m |0 -i 1 -|
|00004900| 72 20 30 20 7b a5 7d 20 | 5b 67 65 74 50 6f 73 5d |r 0 {.} |[getPos]|
|00004910| 5d 0d 09 69 66 20 7b 5b | 6c 6c 65 6e 67 74 68 20 |]..if {[|llength |
|00004920| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 5d 20 3d |$searchR|esult] =|
|00004930| 3d 20 30 7d 20 74 68 65 | 6e 20 7b 0d 09 09 72 65 |= 0} the|n {...re|
|00004940| 74 75 72 6e 20 30 0d 09 | 7d 20 65 6c 73 65 20 7b |turn 0..|} else {|
|00004950| 0d 09 09 67 6f 74 6f 20 | 5b 6c 69 6e 64 65 78 20 |...goto |[lindex |
|00004960| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 20 30 5d |$searchR|esult 0]|
|00004970| 0d 09 09 72 65 74 75 72 | 6e 20 31 0d 09 7d 0d 7d |...retur|n 1..}.}|
|00004980| 0d 70 72 6f 63 20 6e 65 | 78 74 54 61 62 53 74 6f |.proc ne|xtTabSto|
|00004990| 70 20 7b 7d 20 7b 0d 09 | 67 6c 6f 62 61 6c 20 73 |p {} {..|global s|
|000049a0| 65 61 72 63 68 4e 6f 69 | 73 69 6c 79 0d 09 73 65 |earchNoi|sily..se|
|000049b0| 74 20 66 6f 72 77 61 72 | 64 20 31 0d 09 69 66 20 |t forwar|d 1..if |
|000049c0| 7b 5b 67 6f 74 6f 54 61 | 62 53 74 6f 70 20 24 66 |{[gotoTa|bStop $f|
|000049d0| 6f 72 77 61 72 64 5d 7d | 20 74 68 65 6e 20 7b 0d |orward]}| then {.|
|000049e0| 09 09 64 65 6c 65 74 65 | 43 68 61 72 0d 09 7d 20 |..delete|Char..} |
|000049f0| 65 6c 73 65 20 7b 0d 09 | 09 69 66 20 7b 24 73 65 |else {..|.if {$se|
|00004a00| 61 72 63 68 4e 6f 69 73 | 69 6c 79 7d 20 7b 62 65 |archNois|ily} {be|
|00004a10| 65 70 7d 0d 09 09 6d 65 | 73 73 61 67 65 20 22 74 |ep}...me|ssage "t|
|00004a20| 61 62 20 73 74 6f 70 20 | 6e 6f 74 20 66 6f 75 6e |ab stop |not foun|
|00004a30| 64 22 0d 09 7d 0d 7d 0d | 70 72 6f 63 20 70 72 65 |d"..}.}.|proc pre|
|00004a40| 76 54 61 62 53 74 6f 70 | 20 7b 7d 20 7b 0d 09 67 |vTabStop| {} {..g|
|00004a50| 6c 6f 62 61 6c 20 73 65 | 61 72 63 68 4e 6f 69 73 |lobal se|archNois|
|00004a60| 69 6c 79 0d 09 73 65 74 | 20 66 6f 72 77 61 72 64 |ily..set| forward|
|00004a70| 20 30 0d 09 69 66 20 7b | 5b 67 6f 74 6f 54 61 62 | 0..if {|[gotoTab|
|00004a80| 53 74 6f 70 20 24 66 6f | 72 77 61 72 64 5d 7d 20 |Stop $fo|rward]} |
|00004a90| 74 68 65 6e 20 7b 0d 09 | 09 64 65 6c 65 74 65 43 |then {..|.deleteC|
|00004aa0| 68 61 72 0d 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 |har..} e|lse {...|
|00004ab0| 69 66 20 7b 24 73 65 61 | 72 63 68 4e 6f 69 73 69 |if {$sea|rchNoisi|
|00004ac0| 6c 79 7d 20 7b 62 65 65 | 70 7d 0d 09 09 6d 65 73 |ly} {bee|p}...mes|
|00004ad0| 73 61 67 65 20 22 74 61 | 62 20 73 74 6f 70 20 6e |sage "ta|b stop n|
|00004ae0| 6f 74 20 66 6f 75 6e 64 | 22 0d 09 7d 0d 7d 0d 70 |ot found|"..}.}.p|
|00004af0| 72 6f 63 20 6e 74 68 54 | 61 62 53 74 6f 70 20 7b |roc nthT|abStop {|
|00004b00| 6e 75 6d 54 61 62 53 74 | 6f 70 73 7d 20 7b 0d 09 |numTabSt|ops} {..|
|00004b10| 67 6c 6f 62 61 6c 20 73 | 65 61 72 63 68 4e 6f 69 |global s|earchNoi|
|00004b20| 73 69 6c 79 20 70 72 6f | 6d 70 74 4e 6f 69 73 69 |sily pro|mptNoisi|
|00004b30| 6c 79 20 75 73 65 53 74 | 61 74 75 73 42 61 72 0d |ly useSt|atusBar.|
|00004b40| 09 69 66 20 7b 24 6e 75 | 6d 54 61 62 53 74 6f 70 |.if {$nu|mTabStop|
|00004b50| 73 20 3d 3d 20 30 7d 20 | 74 68 65 6e 20 7b 0d 09 |s == 0} |then {..|
|00004b60| 09 69 66 20 7b 24 70 72 | 6f 6d 70 74 4e 6f 69 73 |.if {$pr|omptNois|
|00004b70| 69 6c 79 20 26 26 20 24 | 75 73 65 53 74 61 74 75 |ily && $|useStatu|
|00004b80| 73 42 61 72 7d 20 7b 62 | 65 65 70 7d 0d 09 09 63 |sBar} {b|eep}...c|
|00004b90| 61 74 63 68 20 7b 73 50 | 72 6f 6d 70 74 20 22 48 |atch {sP|rompt "H|
|00004ba0| 6f 77 20 6d 61 6e 79 20 | 74 61 62 20 73 74 6f 70 |ow many |tab stop|
|00004bb0| 73 3f 22 20 22 33 22 7d | 20 6e 75 6d 54 61 62 53 |s?" "3"}| numTabS|
|00004bc0| 74 6f 70 73 0d 09 09 69 | 66 20 7b 24 6e 75 6d 54 |tops...i|f {$numT|
|00004bd0| 61 62 53 74 6f 70 73 20 | 3d 3d 20 22 63 61 6e 63 |abStops |== "canc|
|00004be0| 65 6c 22 7d 20 74 68 65 | 6e 20 7b 0d 09 09 09 72 |el"} the|n {....r|
|00004bf0| 65 74 75 72 6e 0d 09 09 | 7d 0d 09 7d 0d 09 73 65 |eturn...|}..}..se|
|00004c00| 74 20 63 75 72 72 65 6e | 74 50 6f 73 20 5b 67 65 |t curren|tPos [ge|
|00004c10| 74 50 6f 73 5d 0d 09 69 | 66 20 7b 24 6e 75 6d 54 |tPos]..i|f {$numT|
|00004c20| 61 62 53 74 6f 70 73 20 | 3e 20 30 7d 20 7b 73 65 |abStops |> 0} {se|
|00004c30| 74 20 66 6f 72 77 61 72 | 64 20 31 7d 20 7b 73 65 |t forwar|d 1} {se|
|00004c40| 74 20 66 6f 72 77 61 72 | 64 20 30 7d 0d 09 73 65 |t forwar|d 0}..se|
|00004c50| 74 20 6d 61 78 69 74 73 | 20 5b 65 78 70 72 20 61 |t maxits| [expr a|
|00004c60| 62 73 28 24 6e 75 6d 54 | 61 62 53 74 6f 70 73 29 |bs($numT|abStops)|
|00004c70| 5d 0d 09 69 66 20 7b 21 | 5b 67 6f 74 6f 54 61 62 |]..if {!|[gotoTab|
|00004c80| 53 74 6f 70 20 24 66 6f | 72 77 61 72 64 5d 7d 20 |Stop $fo|rward]} |
|00004c90| 74 68 65 6e 20 7b 0d 09 | 09 69 66 20 7b 24 73 65 |then {..|.if {$se|
|00004ca0| 61 72 63 68 4e 6f 69 73 | 69 6c 79 7d 20 7b 62 65 |archNois|ily} {be|
|00004cb0| 65 70 7d 0d 09 09 6d 65 | 73 73 61 67 65 20 22 74 |ep}...me|ssage "t|
|00004cc0| 61 62 20 73 74 6f 70 20 | 6e 6f 74 20 66 6f 75 6e |ab stop |not foun|
|00004cd0| 64 22 0d 09 09 67 6f 74 | 6f 20 24 63 75 72 72 65 |d"...got|o $curre|
|00004ce0| 6e 74 50 6f 73 0d 09 09 | 72 65 74 75 72 6e 0d 09 |ntPos...|return..|
|00004cf0| 7d 0d 09 66 6f 72 20 7b | 73 65 74 20 69 20 31 7d |}..for {|set i 1}|
|00004d00| 20 7b 24 69 20 3c 20 24 | 6d 61 78 69 74 73 7d 20 | {$i < $|maxits} |
|00004d10| 7b 69 6e 63 72 20 69 7d | 20 7b 0d 09 09 69 66 20 |{incr i}| {...if |
|00004d20| 7b 24 66 6f 72 77 61 72 | 64 7d 20 7b 66 6f 72 77 |{$forwar|d} {forw|
|00004d30| 61 72 64 43 68 61 72 7d | 20 7b 62 61 63 6b 77 61 |ardChar}| {backwa|
|00004d40| 72 64 43 68 61 72 7d 0d | 09 09 69 66 20 7b 21 5b |rdChar}.|..if {![|
|00004d50| 67 6f 74 6f 54 61 62 53 | 74 6f 70 20 24 66 6f 72 |gotoTabS|top $for|
|00004d60| 77 61 72 64 5d 7d 20 74 | 68 65 6e 20 7b 0d 09 09 |ward]} t|hen {...|
|00004d70| 09 69 66 20 7b 24 73 65 | 61 72 63 68 4e 6f 69 73 |.if {$se|archNois|
|00004d80| 69 6c 79 7d 20 7b 62 65 | 65 70 7d 0d 09 09 09 6d |ily} {be|ep}....m|
|00004d90| 65 73 73 61 67 65 20 22 | 74 61 62 20 73 74 6f 70 |essage "|tab stop|
|00004da0| 20 6e 6f 74 20 66 6f 75 | 6e 64 22 0d 09 09 09 67 | not fou|nd"....g|
|00004db0| 6f 74 6f 20 24 63 75 72 | 72 65 6e 74 50 6f 73 0d |oto $cur|rentPos.|
|00004dc0| 09 09 09 72 65 74 75 72 | 6e 0d 09 09 7d 0d 09 7d |...retur|n...}..}|
|00004dd0| 0d 09 64 65 6c 65 74 65 | 43 68 61 72 0d 7d 0d 0d |..delete|Char.}..|
|00004de0| 23 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |#-------|--------|
|00004df0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004e00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004e10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 23 20 55 74 |--------|---.# Ut|
|00004e30| 69 6c 69 74 69 65 73 3a | 0d 23 2d 2d 2d 2d 2d 2d |ilities:|.#------|
|00004e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004e80| 2d 2d 2d 2d 0d 0d 70 72 | 6f 63 20 63 6c 65 61 72 |----..pr|oc clear|
|00004e90| 54 61 62 53 74 6f 70 73 | 20 7b 7d 20 7b 0d 09 67 |TabStops| {} {..g|
|00004ea0| 6c 6f 62 61 6c 20 73 65 | 61 72 63 68 4e 6f 69 73 |lobal se|archNois|
|00004eb0| 69 6c 79 0d 09 6d 65 73 | 73 61 67 65 20 22 77 6f |ily..mes|sage "wo|
|00004ec0| 72 6b 69 6e 67 2e 2e 2e | 22 0d 09 73 65 74 20 6d |rking...|"..set m|
|00004ed0| 65 73 73 61 67 65 53 74 | 72 69 6e 67 20 22 73 65 |essageSt|ring "se|
|00004ee0| 6c 65 63 74 69 6f 6e 22 | 0d 09 69 66 20 7b 5b 73 |lection"|..if {[s|
|00004ef0| 65 74 20 73 74 61 72 74 | 20 5b 67 65 74 50 6f 73 |et start| [getPos|
|00004f00| 5d 5d 20 3d 3d 20 5b 73 | 65 74 20 65 6e 64 20 5b |]] == [s|et end [|
|00004f10| 73 65 6c 45 6e 64 5d 5d | 7d 20 7b 0d 09 09 73 65 |selEnd]]|} {...se|
|00004f20| 74 20 6d 65 73 73 61 67 | 65 53 74 72 69 6e 67 20 |t messag|eString |
|00004f30| 22 64 6f 63 75 6d 65 6e | 74 22 0d 09 09 73 65 74 |"documen|t"...set|
|00004f40| 20 73 74 61 72 74 20 30 | 0d 09 09 73 65 74 20 65 | start 0|...set e|
|00004f50| 6e 64 20 5b 6d 61 78 50 | 6f 73 5d 0d 09 7d 0d 09 |nd [maxP|os]..}..|
|00004f60| 73 65 74 20 74 65 78 74 | 20 5b 67 65 74 54 65 78 |set text| [getTex|
|00004f70| 74 20 24 73 74 61 72 74 | 20 24 65 6e 64 5d 0d 09 |t $start| $end]..|
|00004f80| 69 66 20 7b 5b 72 65 67 | 73 75 62 20 2d 61 6c 6c |if {[reg|sub -all|
|00004f90| 20 7b a5 7d 20 24 74 65 | 78 74 20 7b 7d 20 74 65 | {.} $te|xt {} te|
|00004fa0| 78 74 5d 7d 20 74 68 65 | 6e 20 7b 0d 09 09 72 65 |xt]} the|n {...re|
|00004fb0| 70 6c 61 63 65 54 65 78 | 74 20 24 73 74 61 72 74 |placeTex|t $start|
|00004fc0| 20 24 65 6e 64 20 24 74 | 65 78 74 0d 09 09 73 65 | $end $t|ext...se|
|00004fd0| 74 20 65 6e 64 20 5b 67 | 65 74 50 6f 73 5d 0d 09 |t end [g|etPos]..|
|00004fe0| 09 73 65 6c 65 63 74 20 | 24 73 74 61 72 74 20 24 |.select |$start $|
|00004ff0| 65 6e 64 0d 09 09 6d 65 | 73 73 61 67 65 20 22 74 |end...me|ssage "t|
|00005000| 61 62 20 73 74 6f 70 73 | 20 72 65 6d 6f 76 65 64 |ab stops| removed|
|00005010| 20 66 72 6f 6d 20 24 6d | 65 73 73 61 67 65 53 74 | from $m|essageSt|
|00005020| 72 69 6e 67 22 0d 09 7d | 20 65 6c 73 65 20 7b 0d |ring"..}| else {.|
|00005030| 09 09 69 66 20 7b 24 73 | 65 61 72 63 68 4e 6f 69 |..if {$s|earchNoi|
|00005040| 73 69 6c 79 7d 20 7b 62 | 65 65 70 7d 0d 09 09 6d |sily} {b|eep}...m|
|00005050| 65 73 73 61 67 65 20 22 | 6e 6f 20 74 61 62 20 73 |essage "|no tab s|
|00005060| 74 6f 70 73 20 66 6f 75 | 6e 64 20 69 6e 20 24 6d |tops fou|nd in $m|
|00005070| 65 73 73 61 67 65 53 74 | 72 69 6e 67 22 0d 09 7d |essageSt|ring"..}|
|00005080| 0d 7d 0d 0d 70 72 6f 63 | 20 63 6f 6e 76 65 72 74 |.}..proc| convert|
|00005090| 44 6f 6c 6c 61 72 53 69 | 67 6e 73 20 7b 7d 20 7b |DollarSi|gns {} {|
|000050a0| 0d 09 67 6c 6f 62 61 6c | 20 73 65 61 72 63 68 4e |..global| searchN|
|000050b0| 6f 69 73 69 6c 79 0d 09 | 6d 65 73 73 61 67 65 20 |oisily..|message |
|000050c0| 22 77 6f 72 6b 69 6e 67 | 2e 2e 2e 22 0d 09 73 65 |"working|..."..se|
|000050d0| 74 20 6d 65 73 73 61 67 | 65 53 74 72 69 6e 67 20 |t messag|eString |
|000050e0| 22 73 65 6c 65 63 74 69 | 6f 6e 22 0d 09 69 66 20 |"selecti|on"..if |
|000050f0| 7b 5b 73 65 74 20 73 74 | 61 72 74 20 5b 67 65 74 |{[set st|art [get|
|00005100| 50 6f 73 5d 5d 20 3d 3d | 20 5b 73 65 74 20 65 6e |Pos]] ==| [set en|
|00005110| 64 20 5b 73 65 6c 45 6e | 64 5d 5d 7d 20 7b 0d 09 |d [selEn|d]]} {..|
|00005120| 09 73 65 74 20 6d 65 73 | 73 61 67 65 53 74 72 69 |.set mes|sageStri|
|00005130| 6e 67 20 22 64 6f 63 75 | 6d 65 6e 74 22 0d 09 09 |ng "docu|ment"...|
|00005140| 73 65 74 20 73 74 61 72 | 74 20 30 0d 09 09 73 65 |set star|t 0...se|
|00005150| 74 20 65 6e 64 20 5b 6d | 61 78 50 6f 73 5d 0d 09 |t end [m|axPos]..|
|00005160| 7d 0d 09 73 65 74 20 74 | 65 78 74 20 5b 67 65 74 |}..set t|ext [get|
|00005170| 54 65 78 74 20 24 73 74 | 61 72 74 20 24 65 6e 64 |Text $st|art $end|
|00005180| 5d 0d 09 23 20 43 6f 6e | 76 65 72 74 20 61 6c 6c |]..# Con|vert all|
|00005190| 20 64 69 73 70 6c 61 79 | 6d 61 74 68 20 6d 6f 64 | display|math mod|
|000051a0| 65 3a 0d 09 73 65 74 20 | 63 6f 6e 76 65 72 74 31 |e:..set |convert1|
|000051b0| 20 5b 72 65 67 73 75 62 | 20 2d 61 6c 6c 20 7b 5c | [regsub| -all {\|
|000051c0| 24 5c 24 28 5b 5e 24 5d | 2a 29 5c 24 5c 24 7d 20 |$\$([^$]|*)\$\$} |
|000051d0| 24 74 65 78 74 20 7b 5c | 5c 5b 5c 31 5c 5c 5d 7d |$text {\|\[\1\\]}|
|000051e0| 20 74 65 78 74 5d 0d 09 | 23 20 43 6f 6e 76 65 72 | text]..|# Conver|
|000051f0| 74 20 61 6c 6c 20 6d 61 | 74 68 20 6d 6f 64 65 3a |t all ma|th mode:|
|00005200| 0d 09 73 65 74 20 63 6f | 6e 76 65 72 74 32 20 5b |..set co|nvert2 [|
|00005210| 72 65 67 73 75 62 20 2d | 61 6c 6c 20 7b 5c 24 28 |regsub -|all {\$(|
|00005220| 5b 5e 24 5d 2a 29 5c 24 | 7d 20 24 74 65 78 74 20 |[^$]*)\$|} $text |
|00005230| 7b 5c 5c 28 5c 31 5c 5c | 29 7d 20 74 65 78 74 5d |{\\(\1\\|)} text]|
|00005240| 0d 09 69 66 20 7b 24 63 | 6f 6e 76 65 72 74 31 20 |..if {$c|onvert1 |
|00005250| 7c 7c 20 24 63 6f 6e 76 | 65 72 74 32 7d 20 74 68 ||| $conv|ert2} th|
|00005260| 65 6e 20 7b 0d 09 09 72 | 65 70 6c 61 63 65 54 65 |en {...r|eplaceTe|
|00005270| 78 74 20 24 73 74 61 72 | 74 20 24 65 6e 64 20 24 |xt $star|t $end $|
|00005280| 74 65 78 74 0d 09 09 6d | 65 73 73 61 67 65 20 22 |text...m|essage "|
|00005290| 24 6d 65 73 73 61 67 65 | 53 74 72 69 6e 67 20 63 |$message|String c|
|000052a0| 6f 6e 76 65 72 74 65 64 | 20 74 6f 20 4c 61 54 65 |onverted| to LaTe|
|000052b0| 58 20 6d 61 74 68 20 6d | 6f 64 65 20 66 6f 72 6d |X math m|ode form|
|000052c0| 61 74 22 0d 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 |at"..} e|lse {...|
|000052d0| 69 66 20 7b 24 73 65 61 | 72 63 68 4e 6f 69 73 69 |if {$sea|rchNoisi|
|000052e0| 6c 79 7d 20 7b 62 65 65 | 70 7d 0d 09 09 6d 65 73 |ly} {bee|p}...mes|
|000052f0| 73 61 67 65 20 22 6e 6f | 20 64 6f 6c 6c 61 72 20 |sage "no| dollar |
|00005300| 73 69 67 6e 73 20 66 6f | 75 6e 64 20 69 6e 20 24 |signs fo|und in $|
|00005310| 6d 65 73 73 61 67 65 53 | 74 72 69 6e 67 22 0d 09 |messageS|tring"..|
|00005320| 7d 0d 7d 0d 0d 70 72 6f | 63 20 6c 6f 61 64 53 79 |}.}..pro|c loadSy|
|00005330| 6d 62 6f 6c 50 61 63 6b | 61 67 65 20 7b 7d 20 7b |mbolPack|age {} {|
|00005340| 0d 09 67 6c 6f 62 61 6c | 20 73 65 61 72 63 68 4e |..global| searchN|
|00005350| 6f 69 73 69 6c 79 0d 09 | 73 65 74 20 62 65 67 50 |oisily..|set begP|
|00005360| 6f 73 20 5b 67 65 74 50 | 6f 73 5d 0d 09 73 65 74 |os [getP|os]..set|
|00005370| 20 65 6e 64 50 6f 73 20 | 5b 73 65 6c 45 6e 64 5d | endPos |[selEnd]|
|00005380| 0d 09 73 65 74 20 73 65 | 61 72 63 68 53 74 72 69 |..set se|archStri|
|00005390| 6e 67 20 7b 5c 5c 75 73 | 65 70 61 63 6b 61 67 65 |ng {\\us|epackage|
|000053a0| 5c 7b 2e 2a 6c 61 74 65 | 78 73 79 6d 2e 2a 5c 7d |\{.*late|xsym.*\}|
|000053b0| 7d 0d 09 73 65 74 20 73 | 65 61 72 63 68 52 65 73 |}..set s|earchRes|
|000053c0| 75 6c 74 20 5b 73 65 61 | 72 63 68 20 2d 6e 20 2d |ult [sea|rch -n -|
|000053d0| 66 20 31 20 2d 6d 20 30 | 20 2d 69 20 31 20 2d 72 |f 1 -m 0| -i 1 -r|
|000053e0| 20 31 20 24 73 65 61 72 | 63 68 53 74 72 69 6e 67 | 1 $sear|chString|
|000053f0| 20 30 5d 0d 09 69 66 20 | 7b 5b 6c 6c 65 6e 67 74 | 0]..if |{[llengt|
|00005400| 68 20 24 73 65 61 72 63 | 68 52 65 73 75 6c 74 5d |h $searc|hResult]|
|00005410| 20 3d 3d 20 30 7d 20 74 | 68 65 6e 20 7b 0d 09 09 | == 0} t|hen {...|
|00005420| 73 65 74 20 73 65 61 72 | 63 68 53 74 72 69 6e 67 |set sear|chString|
|00005430| 20 7b 5c 5c 64 6f 63 75 | 6d 65 6e 74 63 6c 61 73 | {\\docu|mentclas|
|00005440| 73 28 5c 5b 2e 2a 5c 5d | 29 3f 5c 7b 2e 2a 5c 7d |s(\[.*\]|)?\{.*\}|
|00005450| 7d 0d 09 09 73 65 74 20 | 73 65 61 72 63 68 52 65 |}...set |searchRe|
|00005460| 73 75 6c 74 20 5b 73 65 | 61 72 63 68 20 2d 6e 20 |sult [se|arch -n |
|00005470| 2d 66 20 31 20 2d 6d 20 | 30 20 2d 69 20 31 20 2d |-f 1 -m |0 -i 1 -|
|00005480| 72 20 31 20 24 73 65 61 | 72 63 68 53 74 72 69 6e |r 1 $sea|rchStrin|
|00005490| 67 20 30 5d 0d 09 09 69 | 66 20 7b 5b 6c 6c 65 6e |g 0]...i|f {[llen|
|000054a0| 67 74 68 20 24 73 65 61 | 72 63 68 52 65 73 75 6c |gth $sea|rchResul|
|000054b0| 74 5d 20 3d 3d 20 30 7d | 20 74 68 65 6e 20 7b 0d |t] == 0}| then {.|
|000054c0| 09 09 09 69 66 20 7b 24 | 73 65 61 72 63 68 4e 6f |...if {$|searchNo|
|000054d0| 69 73 69 6c 79 7d 20 7b | 62 65 65 70 7d 0d 09 09 |isily} {|beep}...|
|000054e0| 09 6d 65 73 73 61 67 65 | 20 22 63 61 6e 27 74 20 |.message| "can't |
|000054f0| 66 69 6e 64 20 5c 5c 64 | 6f 63 75 6d 65 6e 74 63 |find \\d|ocumentc|
|00005500| 6c 61 73 73 22 0d 09 09 | 7d 20 65 6c 73 65 20 7b |lass"...|} else {|
|00005510| 0d 09 09 09 67 6f 74 6f | 20 5b 6c 69 6e 64 65 78 |....goto| [lindex|
|00005520| 20 24 73 65 61 72 63 68 | 52 65 73 75 6c 74 20 31 | $search|Result 1|
|00005530| 5d 0d 09 09 09 73 65 74 | 20 74 78 74 20 22 5c 72 |]....set| txt "\r|
|00005540| 5c 5c 75 73 65 70 61 63 | 6b 61 67 65 5c 7b 6c 61 |\\usepac|kage\{la|
|00005550| 74 65 78 73 79 6d 5c 7d | 22 0d 09 09 09 73 65 74 |texsym\}|"....set|
|00005560| 20 6f 66 66 73 65 74 20 | 5b 73 74 72 69 6e 67 20 | offset |[string |
|00005570| 6c 65 6e 67 74 68 20 24 | 74 78 74 5d 0d 09 09 09 |length $|txt]....|
|00005580| 73 65 74 20 62 65 67 50 | 6f 73 20 5b 65 78 70 72 |set begP|os [expr|
|00005590| 20 24 62 65 67 50 6f 73 | 20 2b 20 24 6f 66 66 73 | $begPos| + $offs|
|000055a0| 65 74 5d 0d 09 09 09 73 | 65 74 20 65 6e 64 50 6f |et]....s|et endPo|
|000055b0| 73 20 5b 65 78 70 72 20 | 24 65 6e 64 50 6f 73 20 |s [expr |$endPos |
|000055c0| 2b 20 24 6f 66 66 73 65 | 74 5d 0d 09 09 09 69 6e |+ $offse|t]....in|
|000055d0| 73 65 72 74 54 65 78 74 | 20 24 74 78 74 0d 09 09 |sertText| $txt...|
|000055e0| 7d 0d 09 7d 20 65 6c 73 | 65 20 7b 0d 09 09 69 66 |}..} els|e {...if|
|000055f0| 20 7b 24 73 65 61 72 63 | 68 4e 6f 69 73 69 6c 79 | {$searc|hNoisily|
|00005600| 7d 20 7b 62 65 65 70 7d | 0d 09 09 73 65 6c 65 63 |} {beep}|...selec|
|00005610| 74 20 24 62 65 67 50 6f | 73 20 24 65 6e 64 50 6f |t $begPo|s $endPo|
|00005620| 73 0d 09 09 6d 65 73 73 | 61 67 65 20 22 73 79 6d |s...mess|age "sym|
|00005630| 62 6f 6c 20 70 61 63 6b | 61 67 65 20 61 6c 72 65 |bol pack|age alre|
|00005640| 61 64 79 20 6c 6f 61 64 | 65 64 22 0d 09 7d 0d 7d |ady load|ed"..}.}|
|00005650| 0d 0d 0d 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |...#####|########|
|00005660| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005670| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005680| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005690| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000056a0| 0d 23 20 0d 23 20 50 61 | 72 61 67 72 61 70 68 20 |.# .# Pa|ragraph |
|000056b0| 4d 6f 64 65 20 4d 61 63 | 72 6f 73 0d 23 0d 23 23 |Mode Mac|ros.#.##|
|000056c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000056d0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000056e0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000056f0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00005700| 23 23 23 23 23 23 23 23 | 23 23 23 0d 0d 23 2d 2d |########|###..#--|
|00005710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005750| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 23 20 44 6f 63 75 6d |--------|.# Docum|
|00005760| 65 6e 74 73 3a 0d 23 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ents:.#-|--------|
|00005770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057b0| 2d 0d 0d 70 72 6f 63 20 | 6c 65 74 74 65 72 20 7b |-..proc |letter {|
|000057c0| 7d 20 7b 0d 09 73 65 74 | 20 20 20 20 70 72 65 61 |} {..set| prea|
|000057d0| 6d 62 6c 65 20 22 5c 72 | 5c 5c 61 64 64 72 65 73 |mble "\r|\\addres|
|000057e0| 73 5c 7b 25 5c 72 22 0d | 09 61 70 70 65 6e 64 20 |s\{%\r".|.append |
|000057f0| 70 72 65 61 6d 62 6c 65 | 20 22 09 a5 09 5c 5c 5c |preamble| "...\\\|
|00005800| 5c 09 25 20 69 6e 73 65 | 72 74 20 79 6f 75 72 20 |\.% inse|rt your |
|00005810| 6e 61 6d 65 20 68 65 72 | 65 5c 72 22 0d 09 61 70 |name her|e\r"..ap|
|00005820| 70 65 6e 64 20 70 72 65 | 61 6d 62 6c 65 20 22 09 |pend pre|amble ".|
|00005830| a5 09 5c 5c 5c 5c 09 25 | 20 69 6e 73 65 72 74 20 |..\\\\.%| insert |
|00005840| 79 6f 75 72 20 61 64 64 | 72 65 73 73 20 68 65 72 |your add|ress her|
|00005850| 65 5c 72 22 0d 09 61 70 | 70 65 6e 64 20 70 72 65 |e\r"..ap|pend pre|
|00005860| 61 6d 62 6c 65 20 22 09 | a5 09 5c 5c 5c 5c 09 25 |amble ".|..\\\\.%|
|00005870| 20 69 6e 73 65 72 74 20 | 6d 6f 72 65 20 61 64 64 | insert |more add|
|00005880| 72 65 73 73 20 68 65 72 | 65 5c 72 22 0d 09 61 70 |ress her|e\r"..ap|
|00005890| 70 65 6e 64 20 70 72 65 | 61 6d 62 6c 65 20 22 09 |pend pre|amble ".|
|000058a0| a5 09 20 20 09 25 20 69 | 6e 73 65 72 74 20 63 69 |.. .% i|nsert ci|
|000058b0| 74 79 2d 73 74 61 74 65 | 2d 7a 69 70 20 68 65 72 |ty-state|-zip her|
|000058c0| 65 5c 72 22 0d 09 61 70 | 70 65 6e 64 20 70 72 65 |e\r"..ap|pend pre|
|000058d0| 61 6d 62 6c 65 20 22 5c | 7d 5c 72 5c 72 22 0d 09 |amble "\|}\r\r"..|
|000058e0| 61 70 70 65 6e 64 20 70 | 72 65 61 6d 62 6c 65 20 |append p|reamble |
|000058f0| 22 5c 5c 64 61 74 65 5c | 7b a5 5c 7d 20 20 25 20 |"\\date\|{.\} % |
|00005900| 6f 70 74 69 6f 6e 61 6c | 5c 72 22 0d 09 61 70 70 |optional|\r"..app|
|00005910| 65 6e 64 20 70 72 65 61 | 6d 62 6c 65 20 22 5c 5c |end prea|mble "\\|
|00005920| 73 69 67 6e 61 74 75 72 | 65 5c 7b a5 5c 7d 5c 72 |signatur|e\{.\}\r|
|00005930| 5c 72 22 0d 09 73 65 74 | 20 20 20 20 62 6f 64 79 |\r"..set| body|
|00005940| 20 22 5c 72 5c 5c 62 65 | 67 69 6e 5c 7b 6c 65 74 | "\r\\be|gin\{let|
|00005950| 74 65 72 5c 7d 5c 7b 25 | 5c 72 22 0d 09 61 70 70 |ter\}\{%|\r"..app|
|00005960| 65 6e 64 20 62 6f 64 79 | 20 22 09 a5 09 5c 5c 5c |end body| "...\\\|
|00005970| 5c 09 25 20 69 6e 73 65 | 72 74 20 61 64 64 72 65 |\.% inse|rt addre|
|00005980| 73 73 65 65 27 73 20 6e | 61 6d 65 20 68 65 72 65 |ssee's n|ame here|
|00005990| 5c 72 22 0d 09 61 70 70 | 65 6e 64 20 62 6f 64 79 |\r"..app|end body|
|000059a0| 20 22 09 a5 09 5c 5c 5c | 5c 09 25 20 69 6e 73 65 | "...\\\|\.% inse|
|000059b0| 72 74 20 61 64 64 72 65 | 73 73 65 65 27 73 20 61 |rt addre|ssee's a|
|000059c0| 64 64 72 65 73 73 20 68 | 65 72 65 5c 72 22 0d 09 |ddress h|ere\r"..|
|000059d0| 61 70 70 65 6e 64 20 62 | 6f 64 79 20 22 09 a5 09 |append b|ody "...|
|000059e0| 5c 5c 5c 5c 09 25 20 69 | 6e 73 65 72 74 20 6d 6f |\\\\.% i|nsert mo|
|000059f0| 72 65 20 61 64 64 72 65 | 73 73 20 68 65 72 65 5c |re addre|ss here\|
|00005a00| 72 22 0d 09 61 70 70 65 | 6e 64 20 62 6f 64 79 20 |r"..appe|nd body |
|00005a10| 22 09 a5 09 20 20 09 25 | 20 69 6e 73 65 72 74 20 |"... .%| insert |
|00005a20| 61 64 64 72 65 73 73 65 | 65 27 73 20 63 69 74 79 |addresse|e's city|
|00005a30| 2d 73 74 61 74 65 2d 7a | 69 70 20 68 65 72 65 5c |-state-z|ip here\|
|00005a40| 72 22 0d 09 61 70 70 65 | 6e 64 20 62 6f 64 79 20 |r"..appe|nd body |
|00005a50| 22 5c 7d 5c 72 5c 72 22 | 0d 09 61 70 70 65 6e 64 |"\}\r\r"|..append|
|00005a60| 20 62 6f 64 79 20 22 5c | 5c 6f 70 65 6e 69 6e 67 | body "\|\opening|
|00005a70| 5c 7b 44 65 61 72 20 a5 | 2c 5c 7d 5c 72 5c 72 22 |\{Dear .|,\}\r\r"|
|00005a80| 0d 09 69 66 20 7b 5b 69 | 73 45 6d 70 74 79 46 69 |..if {[i|sEmptyFi|
|00005a90| 6c 65 5d 7d 20 74 68 65 | 6e 20 7b 0d 09 09 61 70 |le]} the|n {...ap|
|00005aa0| 70 65 6e 64 20 62 6f 64 | 79 20 22 25 20 42 4f 44 |pend bod|y "% BOD|
|00005ab0| 59 20 4f 46 20 4c 45 54 | 54 45 52 5c 72 22 0d 09 |Y OF LET|TER\r"..|
|00005ac0| 09 61 70 70 65 6e 64 20 | 62 6f 64 79 20 22 a5 5c |.append |body ".\|
|00005ad0| 72 5c 72 22 0d 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |r\r"..} |else {..|
|00005ae0| 09 69 66 20 7b 5b 69 73 | 44 6f 63 75 6d 65 6e 74 |.if {[is|Document|
|00005af0| 53 65 6c 65 63 74 65 64 | 5d 7d 20 74 68 65 6e 20 |Selected|]} then |
|00005b00| 7b 0d 09 09 09 73 65 74 | 20 74 65 78 74 20 5b 67 |{....set| text [g|
|00005b10| 65 74 53 65 6c 65 63 74 | 5d 0d 23 20 09 09 09 64 |etSelect|].# ...d|
|00005b20| 65 6c 65 74 65 54 65 78 | 74 20 30 20 5b 6d 61 78 |eleteTex|t 0 [max|
|00005b30| 50 6f 73 5d 0d 09 09 09 | 61 70 70 65 6e 64 20 62 |Pos]....|append b|
|00005b40| 6f 64 79 20 22 24 74 65 | 78 74 5c 72 22 0d 09 09 |ody "$te|xt\r"...|
|00005b50| 7d 20 65 6c 73 65 20 7b | 0d 09 09 09 61 6c 65 72 |} else {|....aler|
|00005b60| 74 6e 6f 74 65 20 22 6e | 6f 6e 65 6d 70 74 79 20 |tnote "n|onempty |
|00005b70| 66 69 6c 65 3a 20 20 64 | 65 6c 65 74 65 20 74 65 |file: d|elete te|
|00005b80| 78 74 20 6f 72 20 5c 27 | 53 65 6c 65 63 74 20 41 |xt or \'|Select A|
|00005b90| 6c 6c 5c 27 5c 0d 09 09 | 09 09 66 72 6f 6d 20 74 |ll\'\...|..from t|
|00005ba0| 68 65 20 45 64 69 74 20 | 6d 65 6e 75 22 0d 09 09 |he Edit |menu"...|
|00005bb0| 09 72 65 74 75 72 6e 0d | 09 09 7d 0d 09 7d 0d 09 |.return.|..}..}..|
|00005bc0| 61 70 70 65 6e 64 20 62 | 6f 64 79 20 22 5c 5c 63 |append b|ody "\\c|
|00005bd0| 6c 6f 73 69 6e 67 5c 7b | 53 69 6e 63 65 72 65 6c |losing\{|Sincerel|
|00005be0| 79 2c 5c 7d 5c 72 5c 72 | 22 0d 09 61 70 70 65 6e |y,\}\r\r|"..appen|
|00005bf0| 64 20 62 6f 64 79 20 22 | 5c 5c 65 6e 63 6c 5c 7b |d body "|\\encl\{|
|00005c00| a5 5c 7d 5c 72 22 0d 09 | 61 70 70 65 6e 64 20 62 |.\}\r"..|append b|
|00005c10| 6f 64 79 20 22 5c 5c 63 | 63 5c 7b a5 5c 7d 5c 72 |ody "\\c|c\{.\}\r|
|00005c20| 5c 72 22 0d 09 61 70 70 | 65 6e 64 20 62 6f 64 79 |\r"..app|end body|
|00005c30| 20 22 5c 5c 65 6e 64 5c | 7b 6c 65 74 74 65 72 5c | "\\end\|{letter\|
|00005c40| 7d 5c 72 5c 72 22 0d 09 | 69 6e 73 65 72 74 44 6f |}\r\r"..|insertDo|
|00005c50| 63 75 6d 65 6e 74 20 22 | 6c 65 74 74 65 72 22 20 |cument "|letter" |
|00005c60| 24 70 72 65 61 6d 62 6c | 65 20 24 62 6f 64 79 0d |$preambl|e $body.|
|00005c70| 09 6e 65 78 74 54 61 62 | 53 74 6f 70 0d 09 6d 65 |.nextTab|Stop..me|
|00005c80| 73 73 61 67 65 20 22 65 | 6e 74 65 72 20 73 74 79 |ssage "e|nter sty|
|00005c90| 6c 65 20 28 6f 72 20 6c | 65 61 76 65 20 62 6c 61 |le (or l|eave bla|
|00005ca0| 6e 6b 29 22 0d 7d 0d 70 | 72 6f 63 20 61 72 74 69 |nk)".}.p|roc arti|
|00005cb0| 63 6c 65 20 7b 7d 20 7b | 0d 09 77 72 61 70 44 6f |cle {} {|..wrapDo|
|00005cc0| 63 75 6d 65 6e 74 20 22 | 61 72 74 69 63 6c 65 22 |cument "|article"|
|00005cd0| 0d 7d 0d 70 72 6f 63 20 | 72 65 70 6f 72 74 20 7b |.}.proc |report {|
|00005ce0| 7d 20 7b 0d 09 77 72 61 | 70 44 6f 63 75 6d 65 6e |} {..wra|pDocumen|
|00005cf0| 74 20 22 72 65 70 6f 72 | 74 22 0d 7d 0d 70 72 6f |t "repor|t".}.pro|
|00005d00| 63 20 62 6f 6f 6b 20 7b | 7d 20 7b 0d 09 77 72 61 |c book {|} {..wra|
|00005d10| 70 44 6f 63 75 6d 65 6e | 74 20 22 62 6f 6f 6b 22 |pDocumen|t "book"|
|00005d20| 0d 7d 0d 70 72 6f 63 20 | 73 6c 69 64 65 73 20 7b |.}.proc |slides {|
|00005d30| 7d 20 7b 0d 09 77 72 61 | 70 44 6f 63 75 6d 65 6e |} {..wra|pDocumen|
|00005d40| 74 20 22 73 6c 69 64 65 | 73 22 0d 7d 0d 70 72 6f |t "slide|s".}.pro|
|00005d50| 63 20 63 75 73 74 6f 6d | 20 7b 7d 20 7b 0d 09 63 |c custom| {} {..c|
|00005d60| 61 74 63 68 20 7b 70 72 | 6f 6d 70 74 20 22 57 68 |atch {pr|ompt "Wh|
|00005d70| 61 74 20 64 6f 63 75 6d | 65 6e 74 63 6c 61 73 73 |at docum|entclass|
|00005d80| 3f 22 20 22 61 72 74 69 | 63 6c 65 22 7d 20 64 6f |?" "arti|cle"} do|
|00005d90| 63 75 6d 65 6e 74 54 79 | 70 65 0d 09 69 66 20 7b |cumentTy|pe..if {|
|00005da0| 24 64 6f 63 75 6d 65 6e | 74 54 79 70 65 20 21 3d |$documen|tType !=|
|00005db0| 20 22 63 61 6e 63 65 6c | 22 7d 20 74 68 65 6e 20 | "cancel|"} then |
|00005dc0| 7b 0d 09 09 77 72 61 70 | 44 6f 63 75 6d 65 6e 74 |{...wrap|Document|
|00005dd0| 20 22 24 64 6f 63 75 6d | 65 6e 74 54 79 70 65 22 | "$docum|entType"|
|00005de0| 20 0d 09 7d 0d 7d 0d 0d | 70 72 6f 63 20 67 65 74 | ..}.}..|proc get|
|00005df0| 53 74 79 6c 65 20 7b 7d | 20 7b 0d 09 63 61 74 63 |Style {}| {..catc|
|00005e00| 68 20 7b 70 72 6f 6d 70 | 74 20 22 43 68 6f 6f 73 |h {promp|t "Choos|
|00005e10| 65 20 61 20 73 74 79 6c | 65 3a 22 20 22 31 31 70 |e a styl|e:" "11p|
|00005e20| 74 22 20 22 22 20 22 31 | 31 70 74 22 20 22 31 32 |t" "" "1|1pt" "12|
|00005e30| 70 74 22 20 22 74 69 74 | 6c 65 70 61 67 65 22 20 |pt" "tit|lepage" |
|00005e40| 5c 0d 09 09 09 09 20 20 | 22 74 77 6f 63 6f 6c 75 |\..... |"twocolu|
|00005e50| 6d 6e 22 20 22 74 77 6f | 73 69 64 65 22 20 22 61 |mn" "two|side" "a|
|00005e60| 34 70 61 70 65 72 22 20 | 22 6c 65 71 6e 6f 22 20 |4paper" |"leqno" |
|00005e70| 22 66 6c 65 71 6e 22 7d | 20 73 74 79 6c 65 4e 61 |"fleqn"}| styleNa|
|00005e80| 6d 65 0d 09 69 66 20 7b | 24 73 74 79 6c 65 4e 61 |me..if {|$styleNa|
|00005e90| 6d 65 20 21 3d 20 22 63 | 61 6e 63 65 6c 22 7d 20 |me != "c|ancel"} |
|00005ea0| 74 68 65 6e 20 7b 0d 09 | 09 72 65 74 75 72 6e 20 |then {..|.return |
|00005eb0| 24 73 74 79 6c 65 4e 61 | 6d 65 0d 09 7d 20 65 6c |$styleNa|me..} el|
|00005ec0| 73 65 20 7b 0d 09 09 72 | 65 74 75 72 6e 20 22 22 |se {...r|eturn ""|
|00005ed0| 0d 09 7d 0d 7d 0d 70 72 | 6f 63 20 69 6e 73 65 72 |..}.}.pr|oc inser|
|00005ee0| 74 53 74 79 6c 65 20 7b | 73 74 79 6c 65 7d 20 7b |tStyle {|style} {|
|00005ef0| 0d 09 67 6c 6f 62 61 6c | 20 73 65 61 72 63 68 4e |..global| searchN|
|00005f00| 6f 69 73 69 6c 79 0d 09 | 73 65 74 20 73 65 61 72 |oisily..|set sear|
|00005f10| 63 68 53 74 72 69 6e 67 | 20 7b 5c 5c 64 6f 63 75 |chString| {\\docu|
|00005f20| 6d 65 6e 74 63 6c 61 73 | 73 7d 0d 09 73 65 74 20 |mentclas|s}..set |
|00005f30| 73 65 61 72 63 68 52 65 | 73 75 6c 74 20 5b 73 65 |searchRe|sult [se|
|00005f40| 61 72 63 68 20 2d 6e 20 | 2d 66 20 31 20 2d 6d 20 |arch -n |-f 1 -m |
|00005f50| 30 20 2d 69 20 31 20 2d | 72 20 31 20 24 73 65 61 |0 -i 1 -|r 1 $sea|
|00005f60| 72 63 68 53 74 72 69 6e | 67 20 30 5d 0d 09 69 66 |rchStrin|g 0]..if|
|00005f70| 20 7b 5b 6c 6c 65 6e 67 | 74 68 20 24 73 65 61 72 | {[lleng|th $sear|
|00005f80| 63 68 52 65 73 75 6c 74 | 5d 20 3d 3d 20 30 7d 20 |chResult|] == 0} |
|00005f90| 74 68 65 6e 20 7b 0d 09 | 09 69 66 20 7b 24 73 65 |then {..|.if {$se|
|00005fa0| 61 72 63 68 4e 6f 69 73 | 69 6c 79 7d 20 7b 62 65 |archNois|ily} {be|
|00005fb0| 65 70 7d 0d 09 09 6d 65 | 73 73 61 67 65 20 22 63 |ep}...me|ssage "c|
|00005fc0| 61 6e 5c 27 74 20 66 69 | 6e 64 20 5c 5c 64 6f 63 |an\'t fi|nd \\doc|
|00005fd0| 75 6d 65 6e 74 63 6c 61 | 73 73 22 0d 09 7d 20 65 |umentcla|ss"..} e|
|00005fe0| 6c 73 65 20 7b 0d 09 09 | 73 65 74 20 6e 65 78 74 |lse {...|set next|
|00005ff0| 43 68 61 72 50 6f 73 20 | 5b 6c 69 6e 64 65 78 20 |CharPos |[lindex |
|00006000| 24 73 65 61 72 63 68 52 | 65 73 75 6c 74 20 31 5d |$searchR|esult 1]|
|00006010| 0d 09 09 67 6f 74 6f 20 | 24 6e 65 78 74 43 68 61 |...goto |$nextCha|
|00006020| 72 50 6f 73 0d 09 09 73 | 65 74 20 6e 65 78 74 43 |rPos...s|et nextC|
|00006030| 68 61 72 20 5b 6c 6f 6f | 6b 41 74 20 24 6e 65 78 |har [loo|kAt $nex|
|00006040| 74 43 68 61 72 50 6f 73 | 5d 0d 09 09 69 66 20 7b |tCharPos|]...if {|
|00006050| 24 6e 65 78 74 43 68 61 | 72 20 3d 3d 20 22 5c 5b |$nextCha|r == "\[|
|00006060| 22 7d 20 74 68 65 6e 20 | 7b 0d 09 09 09 66 6f 72 |"} then |{....for|
|00006070| 77 61 72 64 43 68 61 72 | 0d 09 09 09 69 6e 73 65 |wardChar|....inse|
|00006080| 72 74 54 65 78 74 20 24 | 73 74 79 6c 65 0d 09 09 |rtText $|style...|
|00006090| 09 69 66 20 7b 5b 6c 6f | 6f 6b 41 74 20 5b 67 65 |.if {[lo|okAt [ge|
|000060a0| 74 50 6f 73 5d 5d 20 21 | 3d 20 22 5c 5d 22 7d 20 |tPos]] !|= "\]"} |
|000060b0| 74 68 65 6e 20 7b 0d 09 | 09 09 09 69 6e 73 65 72 |then {..|...inser|
|000060c0| 74 54 65 78 74 20 22 2c | 22 0d 09 09 09 7d 0d 09 |tText ",|"....}..|
|000060d0| 09 7d 20 65 6c 73 65 69 | 66 20 7b 24 6e 65 78 74 |.} elsei|f {$next|
|000060e0| 43 68 61 72 20 3d 3d 20 | 22 5c 7b 22 7d 20 74 68 |Char == |"\{"} th|
|000060f0| 65 6e 20 7b 0d 09 09 09 | 69 6e 73 65 72 74 54 65 |en {....|insertTe|
|00006100| 78 74 20 22 5c 5b 24 73 | 74 79 6c 65 5c 5d 22 0d |xt "\[$s|tyle\]".|
|00006110| 09 09 7d 20 65 6c 73 65 | 20 7b 0d 09 09 09 61 6c |..} else| {....al|
|00006120| 65 72 74 6e 6f 74 65 20 | 22 75 6e 72 65 63 6f 67 |ertnote |"unrecog|
|00006130| 6e 69 7a 61 62 6c 65 20 | 5c 5c 64 6f 63 75 6d 65 |nizable |\\docume|
|00006140| 6e 74 63 6c 61 73 73 20 | 73 74 61 74 65 6d 65 6e |ntclass |statemen|
|00006150| 74 22 0d 09 09 7d 0d 09 | 7d 0d 7d 0d 70 72 6f 63 |t"...}..|}.}.proc|
|00006160| 20 73 74 79 6c 65 73 20 | 7b 7d 20 7b 0d 09 73 65 | styles |{} {..se|
|00006170| 74 20 73 74 79 6c 65 20 | 5b 67 65 74 53 74 79 6c |t style |[getStyl|
|00006180| 65 5d 0d 09 69 66 20 7b | 24 73 74 79 6c 65 20 21 |e]..if {|$style !|
|00006190| 3d 20 22 22 7d 20 74 68 | 65 6e 20 7b 0d 09 09 69 |= ""} th|en {...i|
|000061a0| 6e 73 65 72 74 53 74 79 | 6c 65 20 24 73 74 79 6c |nsertSty|le $styl|
|000061b0| 65 0d 09 7d 0d 7d 0d 70 | 72 6f 63 20 67 65 74 50 |e..}.}.p|roc getP|
|000061c0| 61 63 6b 61 67 65 20 7b | 7d 20 7b 0d 09 63 61 74 |ackage {|} {..cat|
|000061d0| 63 68 20 7b 70 72 6f 6d | 70 74 20 22 43 68 6f 6f |ch {prom|pt "Choo|
|000061e0| 73 65 20 61 20 70 61 63 | 6b 61 67 65 3a 22 20 22 |se a pac|kage:" "|
|000061f0| 6c 61 74 65 78 73 79 6d | 22 20 22 22 20 22 61 6d |latexsym|" "" "am|
|00006200| 73 74 65 78 22 20 22 62 | 61 62 65 6c 22 20 5c 0d |stex" "b|abel" \.|
|00006210| 09 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 22 |. | "|
|00006220| 63 6f 6c 6f 72 22 20 22 | 67 72 61 70 68 69 63 73 |color" "|graphics|
|00006230| 22 20 22 69 66 74 68 65 | 6e 22 20 22 6c 61 74 65 |" "ifthe|n" "late|
|00006240| 78 73 79 6d 22 20 22 6d | 61 6b 65 69 64 78 22 20 |xsym" "m|akeidx" |
|00006250| 5c 0d 09 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |\.. | |
|00006260| 20 22 73 68 6f 77 69 64 | 78 22 7d 20 70 61 63 6b | "showid|x"} pack|
|00006270| 61 67 65 4e 61 6d 65 0d | 09 69 66 20 7b 24 70 61 |ageName.|.if {$pa|
|00006280| 63 6b 61 67 65 4e 61 6d | 65 20 21 3d 20 22 63 61 |ckageNam|e != "ca|
|00006290| 6e 63 65 6c 22 7d 20 74 | 68 65 6e 20 7b 0d 09 09 |ncel"} t|hen {...|
|000062a0| 72 65 74 75 72 6e 20 24 | 70 61 63 6b 61 67 65 4e |return $|packageN|
|000062b0| 61 6d 65 0d 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 |ame..} e|lse {...|
|000062c0| 72 65 74 75 72 6e 20 22 | 22 0d 09 7d 0d 7d 0d 70 |return "|"..}.}.p|
|000062d0| 72 6f 63 20 69 6e 73 65 | 72 74 50 61 63 6b 61 67 |roc inse|rtPackag|
|000062e0| 65 20 7b 70 61 63 6b 61 | 67 65 7d 20 7b 0d 09 67 |e {packa|ge} {..g|
|000062f0| 6c 6f 62 61 6c 20 73 65 | 61 72 63 68 4e 6f 69 73 |lobal se|archNois|
|00006300| 69 6c 79 0d 09 73 65 74 | 20 73 65 61 72 63 68 53 |ily..set| searchS|
|00006310| 74 72 69 6e 67 20 7b 5c | 5c 64 6f 63 75 6d 65 6e |tring {\|\documen|
|00006320| 74 63 6c 61 73 73 28 5c | 5b 2e 2a 5c 5d 29 3f 5c |tclass(\|[.*\])?\|
|00006330| 7b 2e 2a 5c 7d 7d 0d 09 | 73 65 74 20 73 65 61 72 |{.*\}}..|set sear|
|00006340| 63 68 52 65 73 75 6c 74 | 20 5b 73 65 61 72 63 68 |chResult| [search|
|00006350| 20 2d 6e 20 2d 66 20 31 | 20 2d 6d 20 30 20 2d 69 | -n -f 1| -m 0 -i|
|00006360| 20 31 20 2d 72 20 31 20 | 24 73 65 61 72 63 68 53 | 1 -r 1 |$searchS|
|00006370| 74 72 69 6e 67 20 30 5d | 0d 09 69 66 20 7b 5b 6c |tring 0]|..if {[l|
|00006380| 6c 65 6e 67 74 68 20 24 | 73 65 61 72 63 68 52 65 |length $|searchRe|
|00006390| 73 75 6c 74 5d 20 3d 3d | 20 30 7d 20 74 68 65 6e |sult] ==| 0} then|
|000063a0| 20 7b 0d 09 09 69 66 20 | 7b 24 73 65 61 72 63 68 | {...if |{$search|
|000063b0| 4e 6f 69 73 69 6c 79 7d | 20 7b 62 65 65 70 7d 0d |Noisily}| {beep}.|
|000063c0| 09 09 6d 65 73 73 61 67 | 65 20 22 63 61 6e 5c 27 |..messag|e "can\'|
|000063d0| 74 20 66 69 6e 64 20 5c | 5c 64 6f 63 75 6d 65 6e |t find \|\documen|
|000063e0| 74 63 6c 61 73 73 22 0d | 09 7d 20 65 6c 73 65 20 |tclass".|.} else |
|000063f0| 7b 0d 09 09 67 6f 74 6f | 20 5b 6c 69 6e 64 65 78 |{...goto| [lindex|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.